uddenMedlem sedan mars 200174 inlägg
någon som kan säga om man får göra så här? Dvs select från en inner join som sedan används i nästa inner join?
(får felmeddelande nu, Incorrect syntax near the keyword 'ON')
varje post kan ha flera statuskoder och vill bara ha ut varje post med senaste statuskoden. DISTINCTROW fungerar inte då jag vill ha efter senaste datum...
" SELECT bla bla bla.. FROM (tabell1 INNER JOIN (" &_
"(SELECT TOP 1 * FROM (" &_
"tblOls ols " &_
"INNER JOIN (" &_
"tblSta_sta sta " &_
"INNER JOIN tblSCO_sco sco " &_
"ON sta.intId_sco = sco.intId) " &_
"ON ols.intId_sta = sta.intId " &_
") ORDER BY sta.datDate DESC)) " &_
"ON orp.intId = ols.intId_orp " &_
"ORDER BY sta.datDate, sco.intRank ASC"
uddenMedlem sedan mars 200174 inlägg
eller kan man kanske lösa det så här, i on-villkoret ?
(felmeddelande här också)
"ON ols.intId_sta = sta.intId AND sta.datDate in (SELECT max(datDate) FROM sta WHERE sta.intId = ols.intId_sta) " &_
uddenMedlem sedan mars 200174 inlägg
felmeddelandet:
An aggregate cannot appear in an ON clause unless it is in a subquery contained in a HAVING clause or select list, and the column being aggregated is an outer reference.
vilket jag inte riktigt är med på?
LarsGMedlem sedan dec. 200012 465 inlägg
Kan du beskriva vilka tabeller du har, lite datainnehåll och vilket resultat du förväntar dig samt vilken DBMS du använder.
uddenMedlem sedan mars 200174 inlägg
ja ursäkta var lite stressad. är MS SQL. i databaser lagras en order för en artikel, som kan ha flera olika statusrapporter. alltså tabeller för order, status, statuskod och så en del länktabeller... och en massa fler.
Vad jag får ut är alla ordrar på alla artiklar, men flera rader för samma artikel då flera statusrapporter finns till en order. Jag vill endast visa en artikel en gång med SENASTE orderstatusen.
Hoppas det blev tydligare :)
Original-sqlsats som ger multiplar av orderstatusar ser ut så här
strSQL = "SELECT usr.strName AS strName, usr.strEmail AS strEmail, usr.intLevel AS intLevel, orp.intId AS intId_orp, orp.strName AS strTitle,orp.strDescription AS strDesc,orp.intId_artikel AS intId_artikel,orp.floatPrice AS price,orp.intId_ord AS intId_ord,sta.datDate AS datDate,sco.strStatusCode AS strStatus " &_
"FROM (tblOrderP_orp orp " &_
"INNER JOIN (tblUsr_Link_tblOrd_ulo ulo " &_
"INNER JOIN tblUsr_usr usr " &_
"ON ulo.intId_usr = usr.intId) " &_
"ON orp.intId_ord = ulo.intId_ord) " &_
"INNER JOIN (tblOLS_ols ols " &_
"INNER JOIN (" &_
"tblStatus_sta sta " &_
"INNER JOIN tblStatusCode_sco sco " &_
"ON sta.intId_sco = sco.intId) " &_
"ON ols.intId_sta = sta.intId) " &_
"ON orp.intId = ols.intId_orp " &_
"ORDER BY sta.datDate, sco.intRank ASC"
i denna vill jag då använda ngt av det jag skrev ovan, men det lyckas ej...