|
| Hjælp til sql forespørgsel? Fra : Torben Jensen |
Dato : 30-07-03 15:36 |
|
Hej NG!
Jeg har to tabeller (produktgrupper og produktbeskrivelser)
Produktgrupper indeholder:
produktgruppenr
varegruppenr
Produktbeskrivelser indeholder:
nr
beskrivelse
hvor 'nr' relaterer sig til både 'produktgruppenr' og 'varegruppenr'
Jeg ønsker en forespørgsel som henter alt fra tabellen 'produktgrupper' og
joiner det med de tilhørende produktbeskrivelser.
Jeg har forsøgt mig med:
SELECT produktgruppenr, varegruppenr, beskrivelse
FROM Produktgrupper, Produktbeskrivelser
WHERE pruduktgruppenr=nr AND varegruppenr=nr
Feltet beskrivelse kan dog kun indeholde en værdi. Jeg mangler altså et felt
til at indeholde beskrivelsen af varegruppen.
Hvordan klarer jeg den?
Håber en venlig sjæl kan hjælpe.
M.v.h.
Torben Jensen
| |
Jimmy (30-07-2003)
| Kommentar Fra : Jimmy |
Dato : 30-07-03 16:49 |
|
"Torben Jensen" <no@spam.dk> wrote in message
news:3f27d74f$0$76106$edfadb0f@dread11.news.tele.dk...
> Hej NG!
>
> Jeg har to tabeller (produktgrupper og produktbeskrivelser)
>
> Produktgrupper indeholder:
> produktgruppenr
> varegruppenr
>
> Produktbeskrivelser indeholder:
> nr
> beskrivelse
>
> hvor 'nr' relaterer sig til både 'produktgruppenr' og 'varegruppenr'
"nr" i tabellen Produktbeskrivelser er vel fremmednøgle til en tabel
Produkter?
I det følgende tager jeg udgangspunkt i at det kun peger på selve produktet.
> Jeg ønsker en forespørgsel som henter alt fra tabellen 'produktgrupper' og
> joiner det med de tilhørende produktbeskrivelser.
SELECT produktgruppenr, varegruppenr, beskrivelse
FROM Produktgrupper
LEFT JOIN Produktbeskrivelser ON (Produktgrupper.produktgruppenr =
Produktbeskrivelser.nr)
WHERE bla bla
Det er muligt, at jeg har misforstået dig totalt, da dine feltnavne
forvirrede mig meget.
Produktbeskriverlser.nr og Produktgrupper.produktgruppenr regner jeg med er
fremmednøgle til en tabel Produkter.
Jeg vil anbefale følgende navngivningssyntaks for fremmednøgler:
F.eks. "ref_Produkt_ID" (ref_TABELNAVN_FELTNAVN)
Mvh
Jimmy
| |
Torben Jensen (30-07-2003)
| Kommentar Fra : Torben Jensen |
Dato : 30-07-03 18:42 |
|
> SELECT produktgruppenr, varegruppenr, beskrivelse
> FROM Produktgrupper
> LEFT JOIN Produktbeskrivelser ON (Produktgrupper.produktgruppenr =
> Produktbeskrivelser.nr)
> WHERE bla bla
>
> Det er muligt, at jeg har misforstået dig totalt, da dine feltnavne
> forvirrede mig meget.
>
> Produktbeskriverlser.nr og Produktgrupper.produktgruppenr regner jeg med
er
> fremmednøgle til en tabel Produkter.
Du har misforstået mig en lille smule.
Jeg prøver lige på en anden måde.
Jeg ahr to tabeller:
Pgrupper, Pbeskrivelser
Pgrupper indeholder to felter:
Pgrnr_ref
Vgrnr_ref
Pbeskrivelser indeholder:
nr
beskrivelse
Både Pgrnr og Vgrnr refererer til nr.
Jeg ønsker et udtræk som viser:
Pgrnr_ref, beskrivelse, Vgrnr_ref, beskrivelse
Hvor 2. kolonne beskriver 1. kolonne og 4. kolonne beskriver 3. kolonne
Både Vgrnr og Pgrnr har jo en beskrivende tekst som jeg gerne vil have fat
i.
Giver det et mere klart billede af hvad jeg ønsker?
Håber at I kan hjælpe mig videre.
Under alle omstændigheder siger jeg tak for hjælpen.
M.v.h.
Torben Jensen
| |
Jimmy (30-07-2003)
| Kommentar Fra : Jimmy |
Dato : 30-07-03 19:46 |
|
> Du har misforstået mig en lille smule.
Ja det regnede jeg med.
Jeg er som sagt temmeligt forvirret over din opbygning og navngivning.
> Jeg prøver lige på en anden måde.
>
> Jeg ahr to tabeller:
>
> Pgrupper, Pbeskrivelser
>
> Pgrupper indeholder to felter:
> Pgrnr_ref
> Vgrnr_ref
>
> Pbeskrivelser indeholder:
> nr
> beskrivelse
>
> Både Pgrnr og Vgrnr refererer til nr.
>
> Jeg ønsker et udtræk som viser:
> Pgrnr_ref, beskrivelse, Vgrnr_ref, beskrivelse
Dette er utestet:
SELECT P_Beskrivelse.beskrivelse AS Produkt_Beskrivelse,
V_Beskrivelse.beskrivelse AS Vare_Beskrivelse,
Pgrupper.Pgrnr_ref,
Pgrupper.Vgrnr_ref
FROM Pgrupper
LEFT JOIN Pbeskrivelser AS P_Beskrivelse ON
(Pgrupper.Pgrnr_ref.Pbeskrivelser = Pbeskrivelser.nr)
LEFT JOIN Pbeskrivelser AS V_Beskrivelse ON
(Pgrupper.Vgrnr_ref.Pbeskrivelser = Pbeskrivelser.nr)
Jeg regner med at du anvender MySQL, men skriv gerne hvilken database du
arbejder med, da det kan være din database understøtter særlig SQL, der gør
det ønskede lettere.
Mvh
Jimmy
| |
Torben Jensen (31-07-2003)
| Kommentar Fra : Torben Jensen |
Dato : 31-07-03 09:01 |
|
> > Pbeskrivelser indeholder:
> > nr
> > beskrivelse
> >
> > Både Pgrnr og Vgrnr refererer til nr.
> >
> > Jeg ønsker et udtræk som viser:
> > Pgrnr_ref, beskrivelse, Vgrnr_ref, beskrivelse
>
>
> Dette er utestet:
>
>
> SELECT P_Beskrivelse.beskrivelse AS Produkt_Beskrivelse,
> V_Beskrivelse.beskrivelse AS Vare_Beskrivelse,
> Pgrupper.Pgrnr_ref,
> Pgrupper.Vgrnr_ref
>
>
> FROM Pgrupper
>
> LEFT JOIN Pbeskrivelser AS P_Beskrivelse ON
> (Pgrupper.Pgrnr_ref.Pbeskrivelser = Pbeskrivelser.nr)
> LEFT JOIN Pbeskrivelser AS V_Beskrivelse ON
> (Pgrupper.Vgrnr_ref.Pbeskrivelser = Pbeskrivelser.nr)
>
Jeg bruger en sql-server 7.0, hvis det gør en forskel.
Det virkede ikke helt, men din idé om at hente samme felt i en tabel to
gange, men kalde den et andet navn var alletiders.
Jeg fik således løst problemet med følgende syntaks (som du kan se stærkt
inspireret af dig):
SELECT DISTINCT
P_beskrivelse.CTTX40 AS Produktgruppebeskr,
V_beskrivelse.CTTX40 AS Varegruppebeskr
FROM CAT_ITEMS, CSYTAB AS P_beskrivelse,
CSYTAB AS V_beskrivelse
WHERE MMITGR = V_beskrivelse.CTSTKY AND
MMITCL = P_beskrivelse.CTSTKY AND
V_beskrivelse.CTSTCO = 'ITGR' AND
P_beskrivelse.CTSTCO = 'ITCL' AND
CAT_ITEMS.MMCONO = 2;
Hvor ITGR og ITCL er det før omtalte 'nr'
Tusind tak for hjælpen
M.v.h.
Torben Jensen
| |
Torben Jensen (30-07-2003)
| Kommentar Fra : Torben Jensen |
Dato : 30-07-03 22:44 |
|
"Jimmy" <nyhedsgruppe@get2net.dk> wrote in message
news:HnUVa.1812$%Z6.1423@news.get2net.dk...
> Dette er utestet:
>
>
> SELECT P_Beskrivelse.beskrivelse AS Produkt_Beskrivelse,
> V_Beskrivelse.beskrivelse AS Vare_Beskrivelse,
> Pgrupper.Pgrnr_ref,
> Pgrupper.Vgrnr_ref
>
>
> FROM Pgrupper
>
> LEFT JOIN Pbeskrivelser AS P_Beskrivelse ON
> (Pgrupper.Pgrnr_ref.Pbeskrivelser = Pbeskrivelser.nr)
> LEFT JOIN Pbeskrivelser AS V_Beskrivelse ON
> (Pgrupper.Vgrnr_ref.Pbeskrivelser = Pbeskrivelser.nr)
>
>
> Jeg regner med at du anvender MySQL, men skriv gerne hvilken database du
> arbejder med, da det kan være din database understøtter særlig SQL, der
gør
> det ønskede lettere.
Det ser jeg frem til at teste straks i morgen tidlig - jeg har desværre ikke
mulighed for at teste det nu.
Jeg bruger en SQL-server 7.0, hvis det ændrer noget.
Foreløbigt siger jeg tak for indsatsen.
M.v.h.
Torben Jensen
| |
|
|