---
title: "innerjoin-haveri-kaos"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/64952-innerjoin-haveri-kaos"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "udden"
published: "2003-01-15T11:10:44.000Z"
updated: "2003-01-15T14:59:10.000Z"
replies: 4
views: 183
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/64952-innerjoin-haveri-kaos"
---

# innerjoin-haveri-kaos

## #1 — udden, 2003-01-15T11:10Z

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"

Permalänk: https://www.webforum.nu/p/64952

## #2 — udden, 2003-01-15T11:34Z

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) " &\_

Permalänk: https://www.webforum.nu/p/915911

## #3 — udden, 2003-01-15T11:40Z

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å?

Permalänk: https://www.webforum.nu/p/915916

## #4 — LarsG, 2003-01-15T12:01Z

Kan du beskriva vilka tabeller du har, lite datainnehåll och vilket resultat du förväntar dig samt vilken DBMS du använder.

Permalänk: https://www.webforum.nu/p/915930

## #5 — udden, 2003-01-15T14:59Z

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...

Permalänk: https://www.webforum.nu/p/916079

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/64952-innerjoin-haveri-kaos
