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