devotionMedlem sedan jan. 20013 582 inlägg Hej :(
Om jag har följande kod:
sSQL = "SELECT tblExArticle.eNumber, tblExArticle.articleName, tblExArticle.articleUnit, tblExPrice.articlePrice, tblExCategory.articleCategory, " &_
"tblExCategory.articleCategoryName, tblExPrice.articleSupplierId, tblExSupplier.SupplierName " &_
"FROM tblExSupplier INNER JOIN (tblExCategory INNER JOIN (tblExArticle INNER JOIN tblExPrice ON tblExArticle.eNumber = tblExPrice.eNumber) " &_
"ON tblExCategory.articleCategory = tblExPrice.articleCategory) ON tblExSupplier.SupplierId = tblExPrice.articleSupplierId " &_
"WHERE tblExPrice.articleSupplierId = " & iSupplierId & ""
jag joinar fyra tabeller tblExPrice tblExArticle och tblExCategory tblExSupplier
Vad händer om ett fält är tomt (null) då listas inte något eller?
Hur kan man göra för att lista aven om något värde i någon tabell är tomt?
Mvh
Henrik :(
Peter SMedlem sedan dec. 20025 483 inlägg Hej!
Experimentera med att byta INNER mot LEFT. t1 LEFT join t2 betyder att tupler från t1 kommer att tas med även om joinen fallerar.
devotionMedlem sedan jan. 20013 582 inlägg ok, ska jag köra Left på alla menar du?
Mvh
@ndersMedlem sedan juni 200032 969 inlägg Använd LEFT (dvs en OUTER JOIN) när du vill ha resultat oberoende av om joinen träffar eller inte. Träffar inte joinen får du då NULL i alla fält från den "högra" tabellen i joinen.
Mvh
devotionMedlem sedan jan. 20013 582 inlägg :(
Ändrade till:
sSQL = "SELECT tblExArticle.eNumber, tblExArticle.articleName, tblExArticle.articleUnit, tblExPrice.articlePrice, tblExCategory.articleCategory, " &_
"tblExCategory.articleCategoryName, tblExPrice.articleSupplierId, tblExSupplier.SupplierName " &_
"FROM tblExSupplier LEFT JOIN (tblExCategory LEFT JOIN (tblExArticle LEFT JOIN tblExPrice ON tblExArticle.eNumber = tblExPrice.eNumber) " &_
"ON tblExCategory.articleCategory = tblExPrice.articleCategory) ON tblExSupplier.SupplierId = tblExPrice.articleSupplierId " &_
"WHERE tblExPrice.articleSupplierId = " & iSupplierId & ""
Fick felmeddelande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Drivrutin för ODBC Microsoft Access] Kopplingsuttrycket stöds inte.
/articles/administration/addUppdragNuArticles.asp, line 41
Använder access....
Mvh
henrik
:(
@ndersMedlem sedan juni 200032 969 inlägg vore fint om du kunde skriva ut färdig sql-fråga och göra den lite mer läsbar :)
mvh
devotionMedlem sedan jan. 20013 582 inlägg okej, ska göra ett försök!
sSQL = "SELECT tblExArticle.eNumber, tblExArticle.articleName, tblExArticle.articleUnit, tblExPrice.articlePrice, tblExCategory.articleCategory, " &_
"tblExCategory.articleCategoryName, tblExPrice.articleSupplierId, tblExSupplier.SupplierName " &_
"FROM tblExSupplier " &_
"LEFT JOIN " &_
"(tblExCategory LEFT JOIN (tblExArticle LEFT JOIN tblExPrice ON tblExArticle.eNumber = tblExPrice.eNumber) " &_
"ON tblExCategory.articleCategory = tblExPrice.articleCategory) " &_
"ON tblExSupplier.SupplierId = tblExPrice.articleSupplierId " &_
"WHERE tblExPrice.articleSupplierId = " & iSupplierId & ""
Utskriven:
SELECT tblExArticle.eNumber, tblExArticle.articleName, tblExArticle.articleUnit, tblExPrice.articlePrice, tblExCategory.articleCategory, tblExCategory.articleCategoryName, tblExPrice.articleSupplierId, tblExSupplier.SupplierName
FROM tblExSupplier
LEFT JOIN
(tblExCategory LEFT JOIN (tblExArticle LEFT JOIN tblExPrice ON tblExArticle.eNumber = tblExPrice.eNumber)
ON tblExCategory.articleCategory = tblExPrice.articleCategory)
ON tblExSupplier.SupplierId = tblExPrice.articleSupplierId
WHERE tblExPrice.articleSupplierId = 1
Mvh
henrik
Peter SMedlem sedan dec. 20025 483 inlägg Vad händer med:
SELECT tblExArticle.eNumber
, tblExArticle.articleName
, tblExArticle.articleUnit
, tblExPrice.articlePrice
, tblExCategory.articleCategory
, tblExCategory.articleCategoryName
, tblExPrice.articleSupplierId
, tblExSupplier.SupplierName
FROM ((tblExSupplier
LEFT
JOIN tblExPrice
ON tblExSupplier.SupplierId = tblExPrice.articleSupplierId)
LEFT
JOIN tblExArticle
ON tblExArticle.eNumber = tblExPrice.eNumber)
LEFT
JOIN tblExCategory
ON tblExCategory.articleCategory = tblExPrice.articleCategory
WHERE tblExPrice.articleSupplierId = " & iSupplierId & ""
?
devotionMedlem sedan jan. 20013 582 inlägg Det händer bara fina saker... Funkar finfint! :)
Tack igen Peter S
Nu är jag helglad igen... (nästan i alla fall... det finn säker massa andra skaer som skall strula....)
Tack!
Mvh
Henrik