這個SQL有什麼問題?從另一個表中選擇並彙總。這個SQL有什麼問題?
SELECT Id, (select SUM(VALUE) from SomeTable) AS SumValue, GETDATE()
FROM MyTable
WHERE SumValue > 0
這個SQL有什麼問題?從另一個表中選擇並彙總。這個SQL有什麼問題?
SELECT Id, (select SUM(VALUE) from SomeTable) AS SumValue, GETDATE()
FROM MyTable
WHERE SumValue > 0
你不能在同一個查詢中的SELECT子句中使用別名欄中,除了在ORDER BY。
它需要subqueried
SELECT Id, SumValue, GETDATE()
FROM (
SELECT Id, (select SUM(VALUE) from TABLE) AS SumValue
FROM MyTable
) X
WHERE SumValue > 0
這是一般情況。對於您的特定查詢,它沒有任何意義,因爲子查詢與外部查詢沒有關聯,因此NO行顯示或ALL行顯示(具有相同的SumValue)。我只是簡單地假設你已經簡化了查詢,因爲「table」的表名實際上不起作用。
正確的做法是
SELECT Id, (select SUM(VALUE) from TABLE) AS SumValue, GETDATE()
FROM MyTable
WHERE (select SUM(VALUE) from TABLE) > 0
我可能會改寫這樣的:
SELECT a.Id, b.SumValue, GETDATE() as [now]
FROM MyTable a
Join
(
select id, SUM(VALUE) as [SumValue]
from [TABLE]
Group by id
)b on a.Id = b.Id
WHERE b.SumValue > 0
這是假設你正在合計值涉及您的表中的ID?
我想說,這可能是最接近克里斯試圖實現的,但有這麼少的信息,以及一個似乎沒有任何目的的sql語句,可能無法確定。 – anothershrubery 2011-03-17 10:55:31
@anothershrubery - 完全同意,當您沒有信息時,很難嘗試選擇最佳選項。模式,可能的數據,預期的輸出等。但是這就是它的樂趣 - 對吧? :) – codingbadger 2011-03-17 11:00:39
查看SQL的HAVING而不是WHERE – 2011-03-17 10:48:57
'TABLE'是SQL中的保留工作,不能用作不帶引號的表名稱。 – 2011-03-17 10:49:18
你得到了什麼錯誤信息,還是僅僅返回錯誤的結果?在這種情況下,需要更詳細的例子來回答這個問題。 – 2011-03-17 10:49:56