Sitter fortfarande och funderar på hur mitt webbaserade faktura program ska fungerar ?? har gjort så ett tag nu... JAg vill först föreslå att du använder unika fältnamn i databasen. Underlättar arbetet med joins. Förslagsvis:hämta från 3 tabeller samtidigt??
kommit fram till följande tabeller:
tbl_foretag
foretag_id
Namn
Ref_pers
...
tbl_artiklar
artikel_id
benamning
pris
beskrivning
tbl_kunder
kund_id
namn
adress
ref_pers
...
tbl_fakturor
faktura_id
kund_id_id
foretag_id
tbl_faktura_artiklar
faktura_id
id
Men nu när jag ska skriva ut en faktura så måste jag ju titta i tbl_fakturor och sedan hämta data om avsändar företaget (tbl_foretag) samt kunden (tbl_kunder) och även alla artiklar som ska finnas med på fakturan och dessa finns ju i tbl_faktura_artiklar.
Så hur ska man skriva sql'en för att plocka ut allt detta? eller måste man ha flera sql satser???
Har jag helt fel upplägg på det hela, tacksam för tips innan jag försöker göra något praktiskt av detta!!
MvhSv: hämta från 3 tabeller samtidigt??
tblKunder
KundId
KundNamn
KundAdress
KundRef
...
tblForetag
ForetagId
ForetagNamn
ForetagRef
...
tblFakturor
FakturaId
FakturaAdress
FakturaKund -> tblKunder.KundId
FakturaForetag -> tblForetag.ForetagId
tblArtiklar
ArtikelId
ArtikelPris
ArtikelBenamning
ArtikelBeskrivning
tblFakturaArtiklar
FakturaArtiklarId
FakturaArtiklarFaktura -> tblFakturor.FakturaId
FakturaArtiklarArtikel -> tblArtiklar.ArtikelId
FakturaArtiklarPris
FakturaArtiklarAntal
Jag tycker om at använda Left Joins. Det gäller att först identifiera från vilken tabell du vill hämta data. Ofta kan det vara bra att dela up det i flera fråger beroende på strukturen.
Jag föreslår två fråger:
qryFaktura
<code>
strSQL = "SELECT tblFakturor.*, tblForetag.ForetagsNamn, tblForetag.ForetagsRef, tblKunder.KundNamn AS KundNamn, tblKunder.KundAdress, tblKunder.KundRef" & vbCrLf & _
"FROM tblFakturor LEFT JOIN " & vbCrLf & _
" tblForetag ON tblFakturor.FakturaForetag = tblForetag.ForetagId LEFT JOIN " & vbCrLf & _
" tblKunder ON tblFakturor.FakturaKund = tblKunder.KundId" & vbCrLf & _
"WHERE tblFakturor.FakturaId = 123"
</code>
qryFakturArtiklar
<code>
strSQL = "SELECT tblFakturaArtiklar.*, tblArtiklar.ArtikelPris, tblArtiklar.ArtikelBenamning, tblArtiklar.ArtikelBeskrivning" & vbCrLf & _
"FROM tblFakturaArtiklar LEFT JOIN " & vbCrLf & _
" tblArtiklar ON tblFakturaArtiklar.FakturaArtiklarArtikel = tblArtiklar.ArtikelId" & vbCrLf & _
"WHERE tblFakturaArtiklar.tblFakturaArtiklarFaktura = 123"
</code>