| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Vise data fra anden tabel Fra : Ukendt | 
  Dato :  28-08-08 22:38 |  
  |   
            Hej.
 
 Jeg er lidt i tvivl om det er i min database eller i programmeringen af min 
 applikation eller evt. begge steder, at jeg kan/skal programmere, hvis jeg 
 vil vise data fra to tabeller.
 
 Et klassisk og håndgribeligt eksempel følger her:
 
 tblVARER (v.)
 VareID, pk, integer
 Varenavn, varchar
 Pris, float
 
 tblKUNDER (k.)
 KundeID, pk, integer
 Kundenavn, varchar
 
 tblSALG (s.)
 ID, pk, integer
 Kunde, fk, integer
 Dato, Dato
 VareID, fk, integer
 Antal, integer
 (Samlet pris, integer)
 
 Her er meningen, at jeg i min tabel skal have vist:
 s.dato, k.kundenavn, v.varenavn, s.antal, s.samletpris
 
 Jeg ved, at s.samletpris er et "fiktivt felt" som jeg opretter og beregner 
 runtime så den ikke ligger og fylder i databasen.
 Mit problem er dog, at få vist kundenavn og varenavn i stedet for kundeID og 
 vareID.
 
 Jeg har forsøgt mig med i Firebird at oprette tabellerne som ovenfor, hvor 
 de primære og foreign keys er lavet som nævnt.
 I min applikation har jeg indsat følgende SQL
 
 SELECT s.id, s.kunde, s.dato, v.varenavn, s.antal
 FROM tblSALG s JOIN tblVARER v
 ON s.vareID = v.ID
 
 og jeg har prøvet
 
 SELECT s.id, s.kunde, s.dato, v.varenavn, s.antal
 FROM tblSALG s, tblVARER v
 WHERE s.VAREID = v.ID
 
 Men umiddelbart bliver "varenavn" ikke vist korrekt, men er blank.
 
 Jeg har i eksemplerne valgt ikke at medtage "kundenavn" for at gøre det 
 overskueligt indtil første problem er løst (Fremgangsmåden må være den samme 
 med problemet omkring at vise kundenavn) 
 
 
  
            
             |   |   
            
        
 
            
         
           Kristian Damm Jensen (29-08-2008) 
         
	
            | Kommentar Fra : Kristian Damm Jensen | 
  Dato :  29-08-08 10:55 |  
  |   
            Michael Sørensen wrote:
 > Hej.
 >
 > Jeg er lidt i tvivl om det er i min database eller i programmeringen
 > af min applikation eller evt. begge steder, at jeg kan/skal
 > programmere, hvis jeg vil vise data fra to tabeller.
 >
 > Et klassisk og håndgribeligt eksempel følger her:
 >
 > tblVARER (v.)
 > VareID, pk, integer
 > Varenavn, varchar
 > Pris, float
 >
 > tblKUNDER (k.)
 > KundeID, pk, integer
 > Kundenavn, varchar
 >
 > tblSALG (s.)
 > ID, pk, integer
 > Kunde, fk, integer
 > Dato, Dato
 > VareID, fk, integer
 > Antal, integer
 > (Samlet pris, integer)
 >
 > Her er meningen, at jeg i min tabel skal have vist:
 > s.dato, k.kundenavn, v.varenavn, s.antal, s.samletpris
 >
 > Jeg ved, at s.samletpris er et "fiktivt felt" som jeg opretter og
 > beregner runtime så den ikke ligger og fylder i databasen.
 > Mit problem er dog, at få vist kundenavn og varenavn i stedet for
 > kundeID og vareID.
 >
 > Jeg har forsøgt mig med i Firebird at oprette tabellerne som ovenfor,
 > hvor de primære og foreign keys er lavet som nævnt.
 > I min applikation har jeg indsat følgende SQL
 >
 > SELECT s.id, s.kunde, s.dato, v.varenavn, s.antal
 > FROM tblSALG s JOIN tblVARER v
 > ON s.vareID = v.ID
 >
 > og jeg har prøvet
 >
 > SELECT s.id, s.kunde, s.dato, v.varenavn, s.antal
 > FROM tblSALG s, tblVARER v
 > WHERE s.VAREID = v.ID
 >
 > Men umiddelbart bliver "varenavn" ikke vist korrekt, men er blank.
 
 De to eksempler er ækvivalente og - så vidt jeg kan se - korrekte. Fejlen må 
 ligge et andet sted.
 
 Er du sikker på at dine data er i orden?
 
 -- 
 Venlig hilsen /Best regards
 Kristian Damm Jensen 
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |