连接查询中使用SUM函数求某符合条件的值
表一:test_cat 结构
cat_id cat_name prd_id
1 test_1 1a
2 test_2 1b
3 test_3 1c
表二:test_table 结构
test_id prd_id value_1 value_2 value_3
1 1a 1 1 1
2 1a 1 1 1
3 1a 1 1 1
4 1b 2 2 2
5 1b 2 2 2
6 1c 3 3 3
7 1c 3 3 3
希望得到的结果为
cat_id cat_name prd_id value_1 value_2 value_3
1 test_1 1a 3 3 3
2 test_2 1b 4 4 4
3 test_3 1c 6 6 6
结果解释
在表一查询的基础上得到表二中属于该表中当前记录的SUM值
谢谢!有正确答案马上给分,分不多,重要的是心意
[解决办法]
--如果即使B表中沒有對應的數據,A表的數據也顯示的話
Select
A.*,
IsNull(SUM(B.value_1), 0) As value_1,
IsNull(SUM(B.value_2), 0) As value_2,
IsNull(SUM(B.value_3), 0) As value_3
From
test_cat A
Left Join
test_table B
On A.prd_id = B.prd_id
[解决办法]
鱼鱼的没有加group by
--换成下面的就好了
Select
A.cat_id, A.cat_name, A.prd_id,
IsNull(SUM(B.value_1), 0) As value_1,
IsNull(SUM(B.value_2), 0) As value_2,
IsNull(SUM(B.value_3), 0) As value_3
From
test_cat A
Left Join
test_table B
On A.prd_id = B.prd_id
group by A.cat_id, A.cat_name, A.prd_id
