icaaqMedlem sedan okt. 20005 273 inlägg Hej.
Jag har följande tabeller.
[red]
[b]tblBookings[/b]
pk_id (räknare) | fk_PersonId (tal, i relation med tblPerson.pk_id) | fk_ExpoDisplayId (tal, i relation med tblExpoDisplay.pk_id)
[b]tblPerson[/b]
pk_id (räknare) | fldName (text) | fldAdress (text)
[b]tblExpoDisplay[/b]
pk_id (räknare) | fk_ExpoId (tal, i relation med tblExpo.pk_id) | fk_DisplayId (tal, i relation med tblDisplay.pk_id)
[b]tblExpo[/b]
pk_id (räknare) | fldName (text)
[b]tblDisplay[/b]
pk_id (räknare) | fldName (text)
[/red]
Nu får ni en nöt att knäcka ;)
Jag vill ha plocka fram tblPerson.fldName, tblExpo.fldName, tblDisplay.fldName där det tblBookings.fk_ExpoDisplayId = tblExpoDisplay.pk_id.
Nån som känner sig sugen ;) Jag klockar er........
mv icaaq
OveRRidEMedlem sedan feb. 200112 078 inlägg Jag är inte säker, men jag testar. ;)
RED. Näe, det är nog helt åt skogen det där. :e
RED2. Vi gör ett nytt försök;
SELECT * FROM tblBookings b
INNER JOIN tblPerson p ON p.pk_id = b.fk_PersonId
INNER JOIN tblExpoDisplay ed ON [u]ed.pk_id = b.fk_ExpoDisplayId[/u]
INNER JOIN tblExpo e ON e.pk_id = ed.fk_ExpoId
INNER JOIN tblDisplay d ON d.pk_id = ed.fk_DisplayId
icaaqMedlem sedan okt. 20005 273 inlägg Kan man rada upp INNER JOIN´s på det där sättet? För jag får fel om har med flera INNER JOINS :( men om jag bara använder en så får jag ut det jag vill ha.
mv icaaq
OveRRidEMedlem sedan feb. 200112 078 inlägg Använder du Access?
Isåfall måste varje substatement inneslutas i paranteser:
SELECT * FROM ((((tblBookings b
INNER JOIN tblPerson p ON p.pk_id = b.fk_PersonId)
INNER JOIN tblExpoDisplay ed ON ed.pk_id = b.fk_ExpoDisplayId)
INNER JOIN tblExpo e ON e.pk_id = ed.fk_ExpoId)
INNER JOIN tblDisplay d ON d.pk_id = ed.fk_DisplayId)
Jag tror att det är där de skall sitta iallafall. ;)
icaaqMedlem sedan okt. 20005 273 inlägg Nu skulle jag vilja utöka lite. jag har denna.
[red]
SELECT DISTINCT p.fldCompany, b.fk_PersonId AS bid, ep.fldStatus AS status, e.fldExpoName, [b](SELECT COUNT(*) FROM ( ((tblPerson AS p INNER JOIN tblBookings AS b ON p.pk_id=b.fk_PersonId) INNER JOIN tblExpoDisplay AS ep ON b.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e ON ep.fk_ExpoId=e.pk_id) WHERE ep.fldStatus = 1 AND p.pk_id = b.fk_personId) AS cnt[/b]
FROM ((tblPerson AS p INNER JOIN tblBookings AS b ON p.pk_id=b.fk_PersonId) INNER JOIN tblExpoDisplay AS ep ON b.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e ON ep.fk_ExpoId=e.pk_id;
[/red]
det är min count som inte vill som jag vill..... nu får jag ut värdet av alla poster som har fldStatus = 1 men jag vill bara ha det antal som har fldStatus = 1 och det personId´t
Hoppas ni förstår ;)
mv icaaq
LarsGMedlem sedan dec. 200012 464 inlägg SELECT DISTINCT p.fldCompany, b.fk_PersonId AS bid,
ep.fldStatus AS status, e.fldExpoName,
(SELECT COUNT(*) FROM ( ((tblPerson AS p INNER JOIN tblBookings AS b1
ON p.pk_id=b1.fk_PersonId) INNER JOIN tblExpoDisplay AS ep
ON b1.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e
ON ep.fk_ExpoId=e.pk_id)
WHERE ep.fldStatus = 1 AND p.pk_id = b.fk_personId) AS cnt
FROM ((tblPerson AS p INNER JOIN tblBookings AS b
ON p.pk_id=b.fk_PersonId) INNER JOIN tblExpoDisplay AS ep
ON b.fk_ExpoDisplayId=ep.pk_id) INNER JOIN tblExpo AS e
ON ep.fk_ExpoId=e.pk_id;
icaaqMedlem sedan okt. 20005 273 inlägg Tack LarsG.
Den funkade som vanligt.
Men jag kan inte förstå varför jag inte kan använda b?
mv icaaq
LarsGMedlem sedan dec. 200012 464 inlägg Du hade två b i din första fråga. I where i subfrågan så kommer b att peka på den tabell som finns i subfrågan och inte den som finns i huvudfrågan.