/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
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




Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408521
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste