Pierre Cornelissen
Pierre Cornelissen

Reputation: 11

Simplify T-SQL Query

I would like to simplify this query if possible.

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' 

Many thanks, Pierre

Upvotes: 0

Views: 165

Answers (1)

TechDo
TechDo

Reputation: 18629

Please try:

SELECT MAX(tDateTimeOfSurvey) 
FROM Stocks.dbo.tblSurvey 
WHERE
    tStockAreaID IN (3,103,181) AND 
    tDateTimeOfSurvey BETWEEN '20140201' AND '20140228' 
HAVING SUM(tWetTons)>0

Upvotes: 1

Related Questions