这有效率吗?如何改进?
我试图根据条件从一组列中获取数据到两组列中。我尝试的所有方法都以多行结束。
这与其他问题非常相似,但更复杂一些。
这就是我所做的:(因为这是针对 iReport/JasperReports 的,所以使用多个查询会很麻烦。)基本上,我们希望从军队战争游戏的两个表中获取生活友好和非友好士兵的统计数据锻炼。
SELECT
army.army_key UNIT_NUM,
COUNT( case when soldier.type_id = 1 then 1 else NULL end ) AS friendCount,
SUM( case when soldier.type_id = 1 then soldier.achievement else 0 end ) AS friendAmount,
COUNT( case when soldier.type_id = 2 then 1 else NULL end ) AS enemyCount,
SUM( case when soldier.type_id = 2 then soldier.achievement else 0 end ) AS enemyAmount
FROM soldier, army
WHERE soldier.army_key = army.army_key
AND army.wargame_id = $P{GAME_ID}
AND soldier.dead is null
GROUP BY army.army_key
ORDER BY UNIT_NUM ASC