嘿所有, 我一直在努力與選擇語句現在一點,我希望得到一些幫助。我目前在臨時表中有一個IP列表,我想計算這個IP作爲服務器的次數,以及它作爲客戶端的次數。不管我如何操作這個select語句,我總是會得到同樣的錯誤,告訴我ServerCount是一個無效列,無論我用什麼替換null。這裏是選擇聲明:SQL嵌套選擇無效列
select IPS, sum (ClientCount) as ClientCount, sum(ServerCount) as ServerCount
from (
select IP as IPS, Count(*) as ClientCount, null
from table1 join temp_table
on table1.client_ip = temp_table.IP
group by IP
union all
select null,IP as IPS, Count(*) as ServerCount
from table1 join temp_table
on table.server_ip = temp_table.IP
group by IP
)t
group by IPS, ClientCount, ServerCount
上半年和下半年獨立工作沒有工會。任何想法是什麼導致這個錯誤?另外,如果我使用空值,我也會得到第二個錯誤。這裏是空位的完整錯誤:
Msg 8155,Level 16,State 2,Line 1 't'的第3列未指定任何列。 消息207,級別16,狀態1,行13 無效的列名稱'ServerCount'。 消息207,級別16,狀態1,行1 無效的列名稱「ServerCount」。
謝謝。
我會指出,當你在第一個選擇中使用聯合中的NUll創建列時,它將默認爲整數數據類型。這很好,但如果它是一個varchar或日期或十進制字段,你應該使用類似CAST(null作爲varchar(10))。 – HLGEM 2010-10-14 21:41:52
比較你的SQL與你問[這個問題]時給出的答案(http://stackoverflow.com/questions/3918349/how-to-count-multiple-fields-in-sql),你會看到IP應該是兩個SELECT語句中的第一列。 – 2010-10-14 21:44:46