02. december 2002 - 18:47Der er
5 kommentarer og 1 løsning
En enkelt SQL
Select Count(responstab.IntroID) As Antal, introtab.IntroID, introtab.Dato, introtab.Overskrift, introtab.Forfatter From introtab Left Join responstab On introtab.IntroID = responstab.IntroID Where responstab.Forfatter = 'Kurt' Group By introtab.IntroID, introtab.Dato, introtab.Overskrift, introtab.Forfatter Order By introtab.IntroID Desc"
Count(responstab.IntroID) returnerer logisk nok kun antallet af Kurts forekomster ved hvert IntroID, men jeg skal have det samlede antal forekomster af hvert IntroID fra responstab, hvor IntroID og Kurt på et tidspunkt står ud for hinanden.
Eks.
IntroID Forfatter
...1... Benny ...2... Kurt ...2... Bjarne ...2... Kurt ...3... John ...4... Ole
Her skal Count(responstab.IntroID) returnere antallet 3.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det kan jeg godt forstå du ikke er. Det er nok også dårligt forklaret...
Kurt står ud for IntroID nr. 2, men antallet af nr. 2's forekomster er 3 (det skal ikke summeres).
Derfor skal "Antal" returnere tallet 3, mens IntroID skal returnere tallet 2. Det er et led i et debatforum. Og hvis Kurt gerne vil se de spørgsmål, han deltager i, skal han kunne se, hvor mange indlæg der er i alt i tråden - og ikke kun hvor mange gange, han selv har lavet indlæg.
Så skal SQL laves om for nu vælger den kun IntroID hvor ForFatter er lig kurt. Men den skal så tælle alle IntroID også selvom forfatter ikke er lig kurt.
Prøv med denne, men jeg er ikke sikker på det viker men det bliver noget i stil med det hvor den vælger IntroID hvor forfatter er lig kurt og så tæller antal af IntoID:
Select Count(responstab.IntroID) As Antal, introtab.IntroID, introtab.Dato, introtab.Overskrift, introtab.Forfatter From introtab Left Join responstab On introtab.IntroID = responstab.IntroID Where responstab.IntroID = ((SELECT distinct responstab.IntroID FROM responstab WHERE responstab.Forfatter = 'Kurt')) Group By introtab.IntroID, introtab.Dato, introtab.Overskrift, introtab.Forfatter Order By introtab.IntroID Desc"
Så må jeg jo næsten løbe det hele igennem 2 gange, hvor jeg først tæller og dernæst henter data...
Tak for interessen :)
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.