这个问题在这里已经有答案了:
来自多个表的sql和数据(6个答案)
11个月前关门了。
我有两个表,我正试图建立一个查询,但我没有正确的结果,有人能帮我吗?
表1:
code|name
74|Jhon
06|Sara
92|Fred
75|Fred
06|Sara
13|Lola
表2:
code|amount|folder
06|500|1
74|135|0
13|150|0
13|100|1
92|200|1
75|250|0
06|300|1
我要按名称选择文件夹的数量和总数,以及包含0的文件夹的数量。
我做了以下查询:
select table1.name,
sum(table2.amount) as amount_tot,
count(table2.folder) as nb_folder,
sum(table2.folder) as nb_folder_ko
from table1 inner join table2 on table1.code=table2.code
group by name
我得到以下结果:
name|amount_tot|nb_folder|nb_folder_ko
Lola|250|2|1
Fred|450|2|1
Sara|1600|4|4
Jhon|135|1|0
如您所见,关于我的源表,这是不正确的,我认为我的查询做了一些重复计算,但我不知道如何修复它,请帮助我:)
1条答案
按热度按时间q9rjltbz1#
你得到一个多对多的连接(而不是一对多)。在联接之前应用distinct:
如果名称/代码组合不是唯一的,请切换到