Avatar billede friiiiis Novice
23. november 2012 - 17:37 Der er 7 kommentarer og
1 løsning

kombinere SUM/GROUP BY sammen med INNER JOIN

Hej,

Jeg skal først lave en innerjoin og dernæst vil jeg gerne lave en SUM /group by på resultatet af inner join

Men hvordan bygger jeg sådan en SQL statement op?

Nogen forslag??
Avatar billede Syska Mester
23. november 2012 - 17:44 #1
Uden at have testet, så burde dette virke.

SELECT t1.GroupId, SUM(t2.Total) AS [Sum] FROM t1
INNER JOIN t2 ON t1.GroupId = t2.GroupId
GROUP BY t1.GroupId

Men hvad har du prøvet?
Avatar billede friiiiis Novice
23. november 2012 - 21:08 #2
Den siger "Missing SQL property" ??

SELECT [PalletNumberProducedAmount].[UIN], SUM([PalletNumberProducedAmount].[ProducedAmount]) FROM  [PalletNumberProducedAmount] INNER JOIN [PalletNumberMASTER] ON [PalletNumberProducedAmount].[UIN] = [PalletNumberMASTER].[UIN]  GROUP BY [PalletNumberMASTER].[UIN]

Ovenstående giver mig "Missing SQL Property" ?

UIN betyder Unique Identification Number

Et spørgsmål mere - hvis jeg nu har en tredje variable som jeg ikke kan bruge som UIN men som jeg senere skal bruge. Denne tredje variable skal IKKE indgå i "GROUP BY" sætningen - hvordan gør jeg det?

Ska jeg lave en inner join på resultatet af ovenstående SQL statement for at få fat i denne tredje variable?
Avatar billede Syska Mester
23. november 2012 - 21:18 #3
Jeg har ikke lige set den før ... hvad for en database bruger du? product, produkt og version?

Du kan bruge en CTE "Common Table Expression" til at få ekstra data med ud ...

Men hvorfor ikke group by på den ekstra property?

Hvis de ikke er ens vil du jo alligevel få duplicate rækker når du joiner.

mvh
Avatar billede friiiiis Novice
23. november 2012 - 21:23 #4
Hej, jeg bruger sql server... Kender ikke versionen....
Avatar billede friiiiis Novice
24. november 2012 - 15:41 #5
Hej Buzzzzz

Jeg fandt ud af det - jeg havde lavet en halv-meter-fejl...

Hvordan får jeg den her tredje variable med ind? - altså hvordan laver jeg en inner join på resultatet af ovenstående SQL statement for at få fat i denne tredje variable?? Jeg e rklar over at jeg får nogle dupletter med men det risiko må jeg tage med...

Smid et svar i øvrigt
Avatar billede friiiiis Novice
24. november 2012 - 16:25 #6
Jeg fik det løst - BUZZZZZ Smid et svar
Avatar billede Syska Mester
25. november 2012 - 13:19 #7
Svar.

Hvordan løste du det, hvis andre måske kunne få glæde af det.
Avatar billede friiiiis Novice
30. november 2012 - 19:17 #8
SELECT T1.[PONumber],sum(T1.[ProducedAmount]) AS SUMMA FROM
(SELECT [UIN],[ProducedAmount],[PONumber] FROM [PalletNumberProducedAmount]) as T1 INNER JOIN
(SELECT [UIN] FROM [PalletNumberMASTER]) as T2
ON T1.[UIN]=T2.[UIN] GROUP BY T1.[PONumber]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester