E kan have relateret 0 til N forekomster af både VF og VP.
Jeg vil gerne have udtrukket følgende liste
E.Hits SUM(VF.Hits) SUM(VP.Hits)
Problemet ved nedenstående SQL-sætning er, at SUM(VP.Hits) eksempelvis bliver 2, selvom der kun er én forekomst af VP hvor hits=1, og 2 forekomster af VF, som er relateret til E. Altså, hvis:
E(1,Danmark,2) VF(1,1,1) VF(2,1,1) VP(1,1,1)
E.Hits = 2 -> OK SUM(VF.Hits) = 2 -> OK SUM(VP.Hits) = 2 -> Ej OK, burde være 1!!
SELECT E.C, E.Hits, SUM(VF.Hits), SUM(VP.Hits) FROM (E Left Join VF on E.ID = VF.EID) left join VP on e.id=vp.eid GROUP BY E.C, E.Hits
Den første left join går fint, d.v.s. SQL-sætningen: SELECT E.C, E.Hits, SUM(VF.Hits) FROM E Left Join VF on E.ID = VF.EID GROUP BY E.C, E.Hits ...gør hvad den skal. Derfor skulle man tro, at man kunne gøre følgende, men det kan man ikke: select E.C, E.Hits, SUM(VF.Hits), SUM(VP.Hits) from ( SELECT E.C, E.Hits, SUM(VF.Hits) FROM E Left Join VF on E.ID = VF.EID GROUP BY E.C, E.Hits ) left join vf on e.id = vp.eid group by e.c, e.Hits ...men det kan bare ikke.
SELECT E.C, E.Hits, (SELECT Sum(Hits) FROM VF WHERE EID=E.ID) AS VF, (SELECT Sum(Hits) FROM VP WHERE EID=E.ID) AS VP FROM E ORDER BY E.C;
Synes godt om
Ny brugerNybegynder
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.