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)'? –