我有一张table:
| 项目|数量|面积|
| - ------|- ------|- ------|
| 1234|十二|美国汽车协会|
| 1234|十一|血脑屏障|
| 1234|十个|CCC|
| 小行星5678|五个|美国汽车协会|
| 小行星4578|十个|美国汽车协会|
| 八五二|八个|美国汽车协会|
| 八五二|九|血脑屏障|
| 八五二|十个|CCC|
预期结果显示仅在AAA区有货,其他区无货
| 项目|数量|面积|
| - ------|- ------|- ------|
| 小行星5678|五个|美国汽车协会|
| 小行星4578|十个|美国汽车协会|
我尝试使用下面的查询,但结果不充分,因为它给予了AAA中的所有项目,而不是我正在寻找的唯一项目
select
item
, coalesce(sum(case when area = 'AAA' then qty end ) ,0) as 'AAA'
from MyTable
group by item
2条答案
按热度按时间bbuxkriu1#
也许是这样的。在CASE表达式中,使用“else 0”将避免空值和关于它们被消除的警告消息。
[编辑]这也行得通,但我认为戴尔的答案更好。
b1payxdu2#
使用
NOT EXISTS
检查同一item
是否不存在其他area
。