Avatar billede Lasse Novice
06. september 2002 - 17:14 Der er 3 kommentarer og
1 løsning

matchende vaerdier

Jeg har en database udtraek der ser saaledes ud:

bil    reference
-----------------
FO150        202
FO150        303
FO150        604
FO150        2005
FO150          20
FO151        202
FO151        303
FO151        604
FO151        2005

Jeg vil nu gerne komme med en stavl referencer, f.eks.:
202,3003,604,2005

Hvordan kan jeg faa at vide om ALLE(hverken mere eller mindre) disse reference ligger inden for een bil?
Det viser sig her, at der er en match ved FO151, men ikke ved FO150, da den har een for meget...

takker paa forhaand

ps. det skal vaere ved brug af SQL, da jeg selv har en loesning ved at tage det ud i VB.
Avatar billede lasse_buck Nybegynder
06. september 2002 - 18:06 #1
Hej gooky,
Jeg lagde mine data i tabellerne bilref og referencer. Syntaksen er korrekt i Oracle, men burde være det samme i MS SQL.

Antal match for hver bil:
select bil, count(*) as antalmatch from bilref where reference in (select reference from referencer) group by bil;

Antal forskellige referencer for hver bil:
select bil, count(distinct reference) as forskref from bilref group by bil;

Antal referencer som skal matches:
select count(*) as antalref from referencer;

Nu skal vi så finde de biler, hvor de tre antal referencer er det samme (hverken mere eller mindre, som du siger):
select bil, count(*) as antalmatch from bilref where reference in (select reference from referencer) group by bil having count(*) = (select count(*) as antalref from referencer)
intersect
select bil, count(distinct reference) from bilref group by bil;

Hvis du ikke vil have antal referencer med:
select bil from ( ... HELE DEN FORRIGE SÆTNING uden semicolon );
Avatar billede lasse_buck Nybegynder
06. september 2002 - 18:08 #2
Det er weekend. Jeg ved ikke, hvornår jeg får tid til at følge op...
Avatar billede lasse_buck Nybegynder
12. september 2002 - 22:39 #3
Hej gooky.
Er svaret tilfredsstillende?
Avatar billede Lasse Novice
13. september 2002 - 23:26 #4
yes, jeg har testet det og det var yderst tilfredsstillende... mange takker.
Jeg har et andet spg. Ikke at jeg vil stille det her, men der kommer nok et op paa eksperten snart ang. databaseopdatering. Det er noget rigtig lort. Det virker til at du er virkelig dygtig, saa jeg haaber du kan give en haand med der.
Endnu engang takker.
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