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



Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407944
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste