Avatar billede encorez Nybegynder
13. november 2010 - 23:45 Der er 10 kommentarer og
1 løsning

Specielt udtræk

Hej
Jeg skal prøve at lave et lidt specielt udtræk.

Lad os sige at jeg noterer oplysninger om biler. Jeg noterer i løbet af ugen  bilmærke, farve og ugenummeret. Det skriver jeg ind i databasen når ugen er omme.

Jeg er så interesseret i et udtræk for hvor det er første gang jeg ser DEN farve for en af bilmærkerne.

Jeg har eksempelvis de sidste 8 uger noteret mange farver på Volvo, men i uge 45 så jeg en lilla Volvo og det er første gang det er sket.
Så skal udtrækket for uge 45 vise "Lilla" på "Volvo" fordi det er første gang det er set.

Hvordan kan jeg lave det i ét udtræk?
Avatar billede arne_v Ekspert
14. november 2010 - 01:47 #1
prøv:

SELECT farve,maerke,MIN(uge)
FROM dinbiltabel
GROUP BY farve,maerke
Avatar billede encorez Nybegynder
14. november 2010 - 09:03 #2
OK, den skal jeg afprøve lidt senere :)
Hvad gør MIN(uge)?
Avatar billede encorez Nybegynder
14. november 2010 - 12:46 #3
Hej igen
Dit forslag finder umiddelbart både den nye farve LILLA, men den medtager også de farver som RØD, som er fundet i uge 45 og i de tidligere uger på Volvo.

Men jeg vil kun have den nye, så hvordan kan man i en SQL frasortere de der har været fundet på Volvo i tidligere uger?
Avatar billede arne_v Ekspert
14. november 2010 - 15:13 #4
MIN = MINimum
Avatar billede arne_v Ekspert
14. november 2010 - 15:14 #5
Den query skulle finde den første uge hvor en given bilmærke farve kombination først er undet.

Hvis det ikke rer hvad du skal bruge, så må du forklare hvad det er du skal bruge.
Avatar billede encorez Nybegynder
14. november 2010 - 19:52 #6
Lad mig stille et eksempel op over data
uge Mærke  Farve
43  Volvo  Rød
43  BMW    Sort
44  Volvo  Sort
44  Volvo  Grøn
44  BMW    Lilla
45  Volvo  Lilla
45  Volvo  Rød
45  BMW    Sort

Her skal udtrækket for uge 45 kun vise Volvo, Lilla fordi den farve er er fundet i de tidligere uger på Volvo
Avatar billede arne_v Ekspert
14. november 2010 - 21:27 #7
SELECT farve,maerke,MIN(uge) AS minuge
FROM dinbiltabel
GROUP BY farve,maerke
HAVING minuge=45

?
Avatar billede encorez Nybegynder
14. november 2010 - 22:10 #8
det ser ud til at virke :)

Læg et svar som tak for hjælpen
Avatar billede encorez Nybegynder
14. november 2010 - 22:15 #9
Nu prøvede jeg det desværre på et større datasæt hvor det ikke gik helt så godt.
Den siger duplicate entry for "Maerke"??
Ja, det samme maerke er der jo masser af gange. Har du en god ide?
Avatar billede arne_v Ekspert
15. november 2010 - 01:08 #10
duplicate entry antyder at det ikke er en select men en insert eller update !?!?
Avatar billede arne_v Ekspert
15. november 2010 - 01:08 #11
og et svar
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