Select min/max meta from query

You need subqueries. This is really a SQL question but as I know no way to do this with native WordPress functions without looping and running multiple queries here you go.

$querystr = "
        SELECT DISTINCT {$wpdb->posts}.ID, 
        {$wpdb->posts}.*,
        (SELECT min(cast(meta_value as unsigned)) 
              FROM {$wpdb->postmeta} 
              WHERE meta_key='_wp_price' 
              AND meta_value IS NOT NULL 
              AND meta_value <> 0
              AND {$wpdb->postmeta}.post_id = {$wpdb->posts}.ID
        ) as min_price,
        (SELECT max(cast(meta_value as unsigned)) 
              FROM {$wpdb->postmeta} 
              WHERE meta_key='_wp_price' 
              AND meta_value IS NOT NULL 
              AND meta_value <> 0
              AND {$wpdb->postmeta}.post_id = {$wpdb->posts}.ID
        ) as max_price,
        FROM {$wpdb->posts}
        LEFT JOIN {$wpdb->term_relationships} ON ({$wpdb->posts}.ID = {$wpdb->term_relationships}.object_id)
        LEFT JOIN {$wpdb->term_taxonomy} ON({$wpdb->term_relationships}.term_taxonomy_id = {$wpdb->term_taxonomy}.term_taxonomy_id)
        LEFT JOIN {$wpdb->terms} ON ({$wpdb->terms}.term_id = {$wpdb->term_taxonomy}.term_id) 
        LEFT JOIN {$wpdb->postmeta} ON ({$wpdb->postmeta}.post_id = {$wpdb->posts}.ID) 
        WHERE {$wpdb->posts}.post_status="publish" 
        AND {$wpdb->posts}.post_type="showroom" 
        ORDER BY {$wpdb->posts}.post_title ASC
        ";

Note: I don’t have your data in my database so I can’t test that but I am sure that it is at least very close to correct.