Re: [SQL ] 数量统计问题?

楼主: hhomerun (HOMERUN家族弟弟)   2014-07-11 19:27:25
Hello,
SELECT [a].[name]
,case when SUM([station].[qty]) IS NULL then 0
else SUM([station].[qty]) end [qty]
FROM (SELECT distinct [name] FROM [test].[dbo].[a]) AS [a]
LEFT JOIN [test].[dbo].[station2] AS [station]
ON [a].[name]=[station].[name]
GROUP BY [a].[name]
这样应该就会有你想要的样子,
case when 那边是因为 如果没任何某个name的资料它会显示出NULL
你好像想要它显示0 所以就用一个条件式让它显示0
然后想要看station1 的时候
就把 LEFT JOIN的那行 [station2] 改成 [station1] 就好了
祝福你工作或是专案顺利搂~~~~
※ 引述《joedenkidd (优质的蓝色射手)》之铭言:
: Dear All
: A Table(a)
: name station
: A station1
: A station2
: B station1
: C station1
: B Table (station1)
: name qty
: A 10
: B 20
: select count(*) from station1 group by name
: 结果:
: A 10
: B 20
: 但是
: select distinct a.name,count(station1.*) from a left join station on a.name=station.name group by a.name
: 结果
: A 20
: B 20
: 看来是因为 a table name=A 出现两次
: 如果说用
: select distinct a.name,count(station1.*) from a left join station on a.name=station.name where a.name='station1' group by a.name
: A 10
作者: joedenkidd (优质的蓝色射手)   2014-07-11 21:17:00
感谢~~我再试看看!!

Links booklink

Contact Us: admin [ a t ] ucptt.com