SELECT state, business, a.report FROM base WHERE state IN (SELECT a.state FROM heart a join (SELECT CAST(MAX(percent_adults) AS DOUBLE) max1 FROM heart)b on (a.percent_adults=b.max1));
在上面的子查询中,只能返回一个值,即表“ heart”中的a.state。该值用于主查询中,并从“基本”表中获取业务。我需要从报表的子查询中的’heart’表返回a.report以及state和business。非常感谢!
您不需要子查询返回两个值。您所需要的子查询就是提供唯一的联接值(依靠两个计算出的double值完全相同的几率)。
因此,只需进行联接并从中选择报告:
select b.state, b.business, a.report from base b join heart a on a.state = b.state where a.percent_adults =( select max( percent_adults ) from heart );
您将联接仅限制为具有最高percent_adult值的一种状态,并从中获取报告。
percent_adult