Avatar billede jems Nybegynder
24. juni 2004 - 12:47 Der er 5 kommentarer og
1 løsning

Avanceret Stored Procedure - tror jeg

Hej alle!

Jeg har en lille udfordring:

I databasen har jeg en tabel som indeholder en liste over FirmaID'er og GruppeID'er.
Firmaer kan være i flere grupper dvs. et udtræk fra db'en kunne se således ud:

FirmaID  GruppeID
1234      22
1234    152
1234    321
4321    444
4321      22
4321    152

Jeg skal bruge antallet af firmaer som er med i fx gruppe 22 og 152 - altså antallet af firmaer som er med i netop 2 forskellige grupper. Dette kunne sagtens "slamkodes" i ASP, men da der temmelig mange data i db'en vil jeg helst undgå at lave det i ASP.

Ville det være muligt at lave dette med Stored Procedure? Eller et View måske? ASP siden hvor data skal udskrives er i forvejen godt belastet med ASP kode vil gerne læsse noget af byrden på SQL serveren.

På forhånd tak for hjælpen!
Avatar billede venne Nybegynder
24. juni 2004 - 13:13 #1
Prøv denne:

SELECT FirmaID
FROM tabel
GROUP BY FirmaID
HAVING COUNT(*) = 2

Eller hvis du bare skal vide hvor mange det er:

SELECT COUNT(*) AS Antal
FROM (
  SELECT FirmaID
  FROM tabel
  GROUP BY FirmaID
  HAVING COUNT(*) = 2
) AS x
Avatar billede jems Nybegynder
24. juni 2004 - 13:30 #2
Okay fint, men hvordan angiver jeg hvilke grupper der skal tælles op?
Avatar billede venne Nybegynder
24. juni 2004 - 13:37 #3
Nåe, på den måde - så prøv sådan:

SELECT FirmaID
FROM tabel
WHERE GruppeID IN (22, 152)
GROUP BY FirmaID
HAVING COUNT(*) = 2
Avatar billede jems Nybegynder
24. juni 2004 - 14:36 #4
Super! Du er sq for sej! :)

Jeg blandede det lidt sammen og kom frem med:
SELECT COUNT(*) AS Antal
FROM (SELECT FirmaID
FROM FirmaGruppe
WHERE GruppeID IN (22, 152)
GROUP BY FirmaID
HAVING COUNT(*) = 2) AntalModtagere

Takker :)
Avatar billede jems Nybegynder
24. juni 2004 - 14:36 #5
Hov glemte at markere dit navn ;)
Avatar billede jems Nybegynder
24. juni 2004 - 15:03 #6
Jeg har faktisk også lige et andet spørgsmål som du sikkert kan hjælpe med, opretter lige et nyt.
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