webForumDet fria alternativet

Referens till en subselectkolumn i ett where-vilkor

Databaser & SQL

7 svar · 263 visningar · startad av Engine^

Medlem sedan dec. 20003 887 inlägg
Frågan#1

Mjo... jag sitter här och bökar lite med Jet SQL/Access och har följande SQL-bit

SELECT tblA_ID, beta, gamma, (SELECT TOP 1 zeta FROM tblC WHERE tblC_ID = tblA_ID ORDER BY zeta DESC)
FROM tblA
INNER JOIN tblB ON tblB_ID = tblA_ID
WHERE epsilon = 23 AND [i][b]referens till zeta[/b] >= #yyyy-mm-dd#[/i]
GROUP BY tblA_ID, beta, gamma

Jag skulle behöva få detta att fungera, men jag vet inte hur hag ska referera till något i en subselect om det ens går.

Medlem sedan feb. 200112 078 inlägg
#2

Du kan väl använda AS i samband med subselects, precis som med vilken annan kolumn som helst? Eller?

SELECT tblA_ID, beta, gamma, (SELECT TOP 1 zeta FROM tblC WHERE tblC_ID = tblA_ID ORDER BY zeta DESC) [b]AS z[/b]
FROM tblA
INNER JOIN tblB ON tblB_ID = tblA_ID
WHERE epsilon = 23 AND [b]z[/b] >= #yyyy-mm-dd#
GROUP BY tblA_ID, beta, gamma
Medlem sedan dec. 20003 887 inlägg
#3

Jag hade hoppats på att det skulle vara så enkelt, men när jag testar frågan i Access, så frågar den efter parametern z...

Jag antar att Access inte klarar av att använda alias på det sättet, tyvärr.

Medlem sedan dec. 20003 887 inlägg
#4

Jag tror jag löst det...

SELECT tblA_ID, beta, gamma, [i]subselect[/i]
FROM tblA
INNER JOIN tblB ON tblB_ID = tblA_ID
WHERE epsilon = 23 AND ([i]subselect[/i] <= #yyyy-mm-dd# OR [i]subselect[/i] IS NULL)
GROUP BY tblA_ID, beta, gamma

Det verkar bli rätt resultat. Jag återkommer väl om det inte fungerar som jag tänkt. :)

red.
Det fungerar precis som jag ville.

Tackar ändå OveRRidE... du fick mig att tänka till :)

Medlem sedan feb. 200112 078 inlägg
#5

Engine^ skrev:

Jag hade hoppats på att det skulle vara så enkelt, men när jag testar frågan i Access, så frågar den efter parametern z...

Jag antar att Access inte klarar av att använda alias på det sättet, tyvärr.

Då kan man ju fråga sig ifall det är en begränsning i Access, för jag kan inte tänka mig att det är så i t.ex. SQL Server.

Bra att det löste sig!

Medlem sedan dec. 200012 464 inlägg
#6

för jag kan inte tänka mig att det är så i t.ex. SQL Server.

Då får du tänka om.

Medlem sedan dec. 20003 887 inlägg
#7

Med all säkerhet så är det en bergänsning i Access :bla red. men det var det visst inte... :)

Jag ska porta över all data till en MSDE-lösning och efter det får Access klaga bäst det vill :)

Så ruggigt många SQL-frågor att göra om bara, så att dom blir enligt standard.

Medlem sedan feb. 200112 078 inlägg
#8

LarsG skrev:

för jag kan inte tänka mig att det är så i t.ex. SQL Server.

Då får du tänka om.

Kan du ge en förklaring till varför det inte fungerar?

291 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
150 ms — hämta tråd, inlägg och bilagor (db)
137 ms — ändringar (db)