I have 2 queries that i need the result to be combined (no duplicates), i thought UNION would work but the result is as if i used UNION ALL.
SELECT Cams_Global.dbo.A960.OmrådesNr, Cams_Global.dbo.A960.OmrådesBenämning, 0 AS Antal FROM A406 INNER JOIN Cams_Global.dbo.A960 ON A406.OmrådesNr = Cams_Global.dbo.A960.OmrådesNr WHERE (A406.Kund IN (5566321537)) UNION SELECT A960_1.OmrådesNr, A960_1.OmrådesBenämning, COUNT(A806.Aordernr) AS Antal FROM A806 INNER JOIN A406 AS A406_1 ON A806.Ställeid = A406_1.Ställeid INNER JOIN A400 ON A806.Objektid = A400.Objektid INNER JOIN A402 ON A400.ObjGrupp = A402.Objgrupp INNER JOIN Cams_Global.dbo.A957 ON A806.LevId = Cams_Global.dbo.A957.LevId RIGHT OUTER JOIN Cams_Global.dbo.A960 AS A960_1 ON A406_1.OmrådesNr = A960_1.OmrådesNr WHERE (A806.Beställning = 0) AND (Cams_Global.dbo.A957.LevIdGrupp IN (1001, 1000)) AND (A806.ProtokollSparad = 0) AND (A406_1.Kund = 5566321537) GROUP BY A960_1.OmrådesBenämning, A960_1.OmrådesNr ORDER BY Cams_Global.dbo.A960.OmrådesBenämning
What i get now
1031 Fagersanna 0 1031 Fagersanna 19 1046 Sånna 0 1032 Tibro 0 1032 Tibro 40
And what i want
1031 Fagersanna 19 1046 Sånna 0 1032 Tibro 40
Advertisement
Answer
You can try the below way – using aggregation on top of your query
select OmrådesNr,OmrådesBenämning,max(Antal) as Antal from ( SELECT Cams_Global.dbo.A960.OmrådesNr, Cams_Global.dbo.A960.OmrådesBenämning, 0 AS Antal FROM A406 INNER JOIN Cams_Global.dbo.A960 ON A406.OmrådesNr = Cams_Global.dbo.A960.OmrådesNr WHERE (A406.Kund IN (5566321537)) UNION SELECT A960_1.OmrådesNr, A960_1.OmrådesBenämning, COUNT(A806.Aordernr) AS Antal FROM A806 INNER JOIN A406 AS A406_1 ON A806.Ställeid = A406_1.Ställeid INNER JOIN A400 ON A806.Objektid = A400.Objektid INNER JOIN A402 ON A400.ObjGrupp = A402.Objgrupp INNER JOIN Cams_Global.dbo.A957 ON A806.LevId = Cams_Global.dbo.A957.LevId RIGHT OUTER JOIN Cams_Global.dbo.A960 AS A960_1 ON A406_1.OmrådesNr = A960_1.OmrådesNr WHERE (A806.Beställning = 0) AND (Cams_Global.dbo.A957.LevIdGrupp IN (1001, 1000)) AND (A806.ProtokollSparad = 0) AND (A406_1.Kund = 5566321537) GROUP BY A960_1.OmrådesBenämning, A960_1.OmrådesNr )A group by OmrådesNr,OmrådesBenämning