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