0
如果可能,我想簡化這個查詢。簡化T-SQL查詢
SELECT
MAX(tDateTimeOfSurvey)
FROM
Stocks.dbo.tblSurvey
WHERE
(
(SELECT ISNULL(SUM(tWetTons), 0)
FROM Stocks.dbo.tblSurvey
WHERE tStockAreaID = 3
AND tDateTimeOfSurvey BETWEEN '20140201' AND '20140228') +
(SELECT ISNULL(SUM(tWetTons), 0)
FROM Stocks.dbo.tblSurvey
WHERE tStockAreaID = 103
AND tDateTimeOfSurvey BETWEEN '20140201' AND '20140228') +
(SELECT ISNULL(SUM(tWetTons), 0)
FROM Stocks.dbo.tblSurvey
WHERE tStockAreaID = 181
AND tDateTimeOfSurvey BETWEEN '20140201' AND '20140228')
) > 0
AND tStockAreaID IN (3,103,181) -- RAS, SOIL, DORB
AND tDateTimeOfSurvey BETWEEN '20140201' AND '20140228'
非常感謝,皮埃爾
請分享您的DDL的表,一些樣本數據和樣本結果解釋你想達到什麼目的? – Mureinik
你到目前爲止嘗試過什麼?你簡化的目標是什麼?也就是說,您是否遇到性能問題或結果不正確? –
這似乎微不足道 - 爲什麼有三個子查詢,當你只有一個'tStockAreaID在(3,103,181)'? –