| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | 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
 
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |