Avatar billede nova-c Nybegynder
08. februar 2011 - 19:28 Der er 5 kommentarer og
1 løsning

SQL tjek i anden tabel

Hej Alle

Jeg Står og har et problem med en sql query som jeg håber i kan hjælpe lidt med

jeg har 3 tabeller

1 Vare
2 Varepris
3 Vareprisgruppe

1:
Varenummer     varenavn    .....
1        aaa       
2        bbb               
3        ccc       
4        ddd       

2:
varenummer    varepris    vareprisgruppe
1        10        ks
1        20        pl
2        111        stk
2        1111        ks
3        1        stk
3        2        ks
3        3        kg
4        1000        ks

3:
Vareprisgruppe    prisgrpnavn
ks        Kasse
pl        Paller
stk        Styk
kg        kil0

Jeg skal så have lavet en sql query der henter følgende

varenummer varenavn og sætter en "variabel" = 1 eller 0 alt efter om
feks varenummer 1 har en kasse pri eller ikke

altså det jeg vil have ud ved varenummer 1 er følgende

1 aaa 1 1 0 0( 1 1 0 0 er fordi varenummer 1 har en kasse og en palle pris)

kan man forstå det og lave det :-)

mvh

nova
Avatar billede nova-c Nybegynder
08. februar 2011 - 19:30 #1
lige en tilføjelse :

1 aaa 1 1 0 0( 1 1 0 0 er fordi varenummer 1 har en kasse og en palle pris og ingen pris for styk og kilo)
08. februar 2011 - 21:02 #2
Med denne forespoergsel

SELECT v.varenummer,
v.varenavn,
IF ( EXISTS (SELECT vareprisgruppe FROM Varepris WHERE varenummer = v.varenummer AND vareprisgruppe = 'ks'), '1', '0') as ks,
IF ( EXISTS (SELECT vareprisgruppe FROM Varepris WHERE varenummer = v.varenummer AND vareprisgruppe = 'pl'), '1', '0') as pl,
IF ( EXISTS (SELECT vareprisgruppe FROM Varepris WHERE varenummer = v.varenummer AND vareprisgruppe = 'stk'), '1', '0') as stk,
IF ( EXISTS (SELECT vareprisgruppe FROM Varepris WHERE varenummer = v.varenummer AND vareprisgruppe = 'kg'), '1', '0') as kg
FROM Vare v;

fik jeg dette resultat:

 
varenummer  varenavn  ks  pl  stk  kg 
            1            aaa        1    1    0    0
            2            bbb        1    0    1    0
            3            ccc        1    0    1    1
            4            ddd        1    0    0    0
Avatar billede nova-c Nybegynder
08. februar 2011 - 21:10 #3
hol da op det var hurtigt ! takker MANGE GANGE

jeg tester det lige imorgen
08. februar 2011 - 21:17 #4
Jeg ser at du er et nyt medlem.  Jeg minder dig lige om proceduren:  Hvis du (efter at have kikket paa det) finder at svaret var til hjaelp afgiver du points og lukker spoergsmaalet ved at saette et 'flueben' i den lille firkant ved 'Accepter dette svar' og derefter klikke paa feltet 'Accepter svar og afgiv points'.  (Hvis du har problemer saa fortael, saa kikker vi paa det.)
09. februar 2011 - 22:04 #5
nova-c, min foreslaaede loesning virker i MYSQL, men jeg har i mellemtiden fundet ud af af MSSQL ikke har en IF funktion men en IIF funktion (IIF betyder 'Immediate IF').  Jeg har ikke mulighed for at teste i MSSQL, men proev i min foreslaaede loesning at erstatte alle IF's med IIF.
Avatar billede nova-c Nybegynder
09. februar 2011 - 22:41 #6
takker igen mange gange det virker med mysql
så må jeg prøve med mssql senere :-)
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