How to combine the two following queries?
I have one query as follows, the results of which need to be incorporated into the second query: First query: SELECT ASSETID, NAME, ASSETGROUP FROM ASSETTABLE AS A WHERE (DATAAREAID IN (@CompanyID)) AND (NOT EXISTS (SELECT 1 AS Expr1 FROM ASSETTRANS AS AT WHERE (TRANSTYPE = 12) AND (TRANSDATE < CONVERT(datetime, '01/04/2011', 103)) AND (ASSETID = A.ASSETID) OR (TRANSTYPE = 13) AND (TRANSDATE < CONVERT(datetime, '01/04/2011', 103)) AND (ASSETID = A.ASSETID))) Second query: SELECT ASSETTABLE.ASSETID, ASSETTABLE.DATAAREAID, ASSETTABLE.ASSETGROUP, ASSETTABLE.NAME, CASE WHEN totalcost.totalcost IS NULL THEN 0 ELSE Totalcost.Totalcost END AS Cost FROM ASSETTABLE LEFT OUTER JOIN (SELECT ASSETTRANS.DATAAREAID, ASSETTRANS.ASSETID, SUM(ASSETTRANS.AMOUNTMST) AS TotalCost FROM ASSETTRANS INNER JOIN (SELECT RECID, TRANSDATE, DATAAREAID FROM ASSETTRANS AS ASSETTRANS_2 WHERE (TRANSDATE <= @Date)) AS DateCost ON ASSETTRANS.RECID = DateCost.RECID AND ASSETTRANS.DATAAREAID = DateCost.DATAAREAID INNER JOIN (SELECT RECID, TRANSTYPE, DATAAREAID FROM ASSETTRANS AS ASSETTRANS_1 WHERE (TRANSTYPE = 1)) AS TypeCost ON TypeCost.RECID = ASSETTRANS.RECID AND TypeCost.DATAAREAID = ASSETTRANS.DATAAREAID GROUP BY ASSETTRANS.DATAAREAID, ASSETTRANS.ASSETID) AS TotalCost ON ASSETTABLE.ASSETID = TotalCost.ASSETID AND ASSETTABLE.DATAAREAID = TotalCost.DATAAREAID On the second query, on the third line, where it says 'From Assettable' - I need Assettable to only contain records which are there after applying the first query. How do I do this please?
April 15th, 2011 11:02am

Try this: SELECT ASSETTABLE.ASSETID, ASSETTABLE.DATAAREAID, ASSETTABLE.ASSETGROUP, ASSETTABLE.NAME, CASE WHEN totalcost.totalcost IS NULL THEN 0 ELSE Totalcost.Totalcost END AS Cost FROM (SELECT ASSETID, NAME, ASSETGROUP, DATAAREAID FROM ASSETTABLE AS A WHERE (DATAAREAID IN (@CompanyID)) AND (NOT EXISTS (SELECT 1 AS Expr1 FROM ASSETTRANS AS AT WHERE (TRANSTYPE = 12) AND (TRANSDATE < CONVERT(datetime, '01/04/2011', 103)) AND (ASSETID = A.ASSETID) OR (TRANSTYPE = 13) AND (TRANSDATE < CONVERT(datetime, '01/04/2011', 103)) AND (ASSETID = A.ASSETID)))) ASSETTABLE LEFT OUTER JOIN (SELECT ASSETTRANS.DATAAREAID, ASSETTRANS.ASSETID, SUM(ASSETTRANS.AMOUNTMST) AS TotalCost FROM ASSETTRANS INNER JOIN (SELECT RECID, TRANSDATE, DATAAREAID FROM ASSETTRANS AS ASSETTRANS_2 WHERE (TRANSDATE <= @Date)) AS DateCost ON ASSETTRANS.RECID = DateCost.RECID AND ASSETTRANS.DATAAREAID = DateCost.DATAAREAID INNER JOIN (SELECT RECID, TRANSTYPE, DATAAREAID FROM ASSETTRANS AS ASSETTRANS_1 WHERE (TRANSTYPE = 1)) AS TypeCost ON TypeCost.RECID = ASSETTRANS.RECID AND TypeCost.DATAAREAID = ASSETTRANS.DATAAREAID GROUP BY ASSETTRANS.DATAAREAID, ASSETTRANS.ASSETID) AS TotalCost ON ASSETTABLE.ASSETID = TotalCost.ASSETID AND ASSETTABLE.DATAAREAID = TotalCost.DATAAREAID -Remember to mark as helpful/the answer if you agree with the post.
Free Windows Admin Tool Kit Click here and download it now
April 15th, 2011 4:03pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics