EclipseMedlem sedan juli 20003 825 inlägg Jag använder Access och asp.
Frågan går ut på att jag har företag, company, och jag ska redigera mitt företag
... where companyID = 23 inte så svårt.
***
Men nu är det så att dom företagen som finns på sajten kan ha olika kategorier. Det finns just u fyra kategorier.
Kategorierna är Företagsregister, Restaurang, Konstnärer, Mäklare/hyresvärdar.
Som admin markerar jag vilka företag som ska finnas med i vilka kategorier (utom den första).
Nu vill jag har en fråga som genererar ett svar som är i stil med
intID, strName, intsortfield
TRUE, FALSE, FALSE, FALSE
***
Ett alternativ jag tänkt på är att jag kan räkna varje gång. (SELECT COUNT(*) FROM companyType ct WHERE c.intID = ct.CompanyID)
Det blir ju då 1 eller 0... ja, det är det bästa jag kan komma på!
EclipseMedlem sedan juli 20003 825 inlägg intID, strName, intsortfield
, (SELECT COUNT(*) FROM companyType ct WHERE c.intID = ct.CompanyID AND ct.intCompanyTypesID = 3)
Lite rörigt, det finns tre tabeller, commpany, companyType, companyTypes
[companyType] -- tre rader
intID
intCompanyID
intCompanyTypesID
EclipseMedlem sedan juli 20003 825 inlägg Kan man skriva detta snyggare??
SQL = "SELECT c.intID, c.strName, c.dteCreated, c.bolView " _
& ", u.intID, cc.intID " _
& ", (SELECT COUNT(*) FROM companyType ct WHERE ct.intCompanyID = c.intID AND ct.intCompanyTypesID = 2 )" _
& ", (SELECT COUNT(*) FROM companyType ct WHERE ct.intCompanyID = c.intID AND ct.intCompanyTypesID = 3 )" _
& ", (SELECT COUNT(*) FROM companyType ct WHERE ct.intCompanyID = c.intID AND ct.intCompanyTypesID = 4 )" _
& ", (SELECT COUNT(*) FROM companyType ct WHERE ct.intCompanyID = c.intID AND ct.intCompanyTypesID = 1 )" _
& " FROM company c, users u, companyCrew cc " _
& " WHERE cc.intUserID = " & session("userID") _
& " AND cc.intUserID = u.intID " _
& " AND cc.intCompanyID = c.intID " _
& " ORDER BY c.strName;"
set mySQL = Conn.Execute(SQL)
HansenMedlem sedan aug. 2000374 inlägg Om det är snyggare vet jag inte, men effektivare:
SELECT c.intID,
c.strName,
c.dteCreated,
c.bolView,
u.intID,
cc.intID,
SUM ( CASE WHEN ct.intCompanyTypesID = 2 THEN 1 ELSE 0 END ),
SUM ( CASE WHEN ct.intCompanyTypesID = 3 THEN 1 ELSE 0 END ),
SUM ( CASE WHEN ct.intCompanyTypesID = 4 THEN 1 ELSE 0 END ),
SUM ( CASE WHEN ct.intCompanyTypesID = 1 THEN 1 ELSE 0 END )
FROM company AS c,
users AS u,
companyCrew AS cc,
companyType AS ct
WHERE cc.intUserID = :userID
AND cc.intUserID = u.intID
AND cc.intCompanyID = c.intID
AND ct.intCompanyID = c.intID
ORDER BY c.strName