---
title: "Två select i en SQL"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/13792-två-select-i-en-sql"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "saw"
published: "2002-01-13T21:24:00.000Z"
updated: "2002-01-15T21:59:00.000Z"
replies: 10
views: 188
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/asp/13792-två-select-i-en-sql"
---

# Två select i en SQL

## #1 — saw, 2002-01-13T21:24Z

Jag använder mig av denna SQL när jag öppnar upp mitt forum (ser ut som på detta forumet nästan).

```
RS.OPEN "SELECT  Forum.ForumId, Forum.InlaggID, Forum.ReplyID, Forum.Amne,  Inlagg.Datum, Forum.Hits, Forum.Icon, Forum.Svar, Inlagg.Org, Person.PersonId, Person.Namn, Person.Epost, Person.Skrivit, Inlagg.InlaggId, Inlagg.Inlagg "&_
" FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId WHERE  Org = TRUE ORDER BY Datum DESC;", connection, adopenkeyset, adlockoptimistic
```

Denna SQL fungerar kanon.
Den visar alltså på det första medelandet.
Sen har jag ett script som någon hjälpte mig med för några månader sedan för att sen om det finns några nya inlägg.

```

If Cdate(LatestThread) > Cdate(Kaka) Then
newPost = "<img border=""0"" src=""bild/brev.gif"">"
strnewPost=strnewPost + 1
Else
newPost = "-"
End If
response.write newPost
```

Då visar denna om någon har startat ett nytt ämne.
Problemet är att om någon svarar på en tråd, så syns inte detta med scriptet ovan. inte heller kan man sortera med ORDER BY med det scriptet, för att ta hänsyn till nya inlägg.

Jag har kommit fram till att jag måste ha en SELECT-sats inuti denna SQL:en som tar fram datumet som ett AS newDatum...
Någon som försåt och kan hjälpa mig?

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

## #2 — saw, 2002-01-13T22:00Z

Den SQL jag försöker med ser ut så här:

```
RS.OPEN "SELECT (SELECT Inlagg.Datum As newDatum FROM Inlagg INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId) "&_
" Forum.ForumId, Forum.InlaggID, Forum.ReplyID, Forum.Amne,  Inlagg.Datum, Forum.Hits, Forum.Icon, Forum.Svar, Inlagg.Org, Person.PersonId, Person.Namn, Person.Epost, Person.Skrivit, Inlagg.InlaggId, Inlagg.Inlagg "&_
" FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId WHERE  Org = TRUE ORDER BY newDatum DESC;", connection, adopenkeyset, adlockoptimistic
```

Men den duger naturligtvis inte. Jag får följande fel:

```
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel. i frågeuttrycket '(SELECT Inlagg.Datum As newDatum FROM Inlagg INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId) Forum.ForumId'.
/Hemsidor/GlobalaForeningen/Forum/Index.asp, line 49
```

Några tips?

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

## #3 — LarsG, 2002-01-13T22:32Z

Det saknas ett komma efter din subselect. Du måste också se till att den returnerar högst ett värde.

```
RS.OPEN "SELECT (SELECT max(Inlagg.Datum) As newDatum FROM Inlagg INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId), "&_
" Forum.ForumId, Forum.InlaggID, Forum.ReplyID, Forum.Amne, Inlagg.Datum, Forum.Hits, Forum.Icon, Forum.Svar, Inlagg.Org, Person.PersonId, Person.Namn, Person.Epost, Person.Skrivit, Inlagg.InlaggId, Inlagg.Inlagg "&_
" FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId WHERE Org = TRUE ORDER BY newDatum DESC;", connection, adopenkeyset, adlockoptimistic
```

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

## #4 — saw, 2002-01-13T22:36Z

Tack LarsG men tyvärr.
Din kod resulterar i följande error

```
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel. i frågeuttrycket '(SELECT max(Inlagg.Datum) As newDatum FROM Inlagg INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId)'.
/Hemsidor/GlobalaForeningen/Forum/Index.asp, line 50
```

Vad tror du?

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

## #5 — LarsG, 2002-01-13T22:46Z

Jag tror att dom som skrivit sql-kompilatorn i Access har gjort fel. Jag får inget syntaxfel när jag testar frågan. Om du flyttar ut as Newdatum då?

```
RS.OPEN "SELECT (SELECT max(Inlagg.Datum) FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId) as newDatum, "&_
" Forum.ForumId, Forum.InlaggID, Forum.ReplyID, Forum.Amne, Inlagg.Datum, Forum.Hits, Forum.Icon, Forum.Svar, Inlagg.Org, Person.PersonId, Person.Namn, Person.Epost, Person.Skrivit, Inlagg.InlaggId, Inlagg.Inlagg "&_
" FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId WHERE Org = TRUE ORDER BY newDatum DESC;", connection, adopenkeyset, adlockoptimistic
```

Jag ändrade i subselecten också, borde det inte vara person direkt efter from?

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

## #6 — saw, 2002-01-13T23:04Z

```
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/Hemsidor/GlobalaForeningen/Forum/Index.asp, line 50
```

Tyvärr LarsG

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

## #7 — LarsG, 2002-01-13T23:12Z

Jo visst ja.

Access tillåter inte att du gör order by på newdatum, du får skriva 

```
RS.OPEN "SELECT (SELECT max(Inlagg.Datum) FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId) as newDatum, "&_
" Forum.ForumId, Forum.InlaggID, Forum.ReplyID, Forum.Amne, Inlagg.Datum, Forum.Hits, Forum.Icon, Forum.Svar, Inlagg.Org, Person.PersonId, Person.Namn, Person.Epost, Person.Skrivit, Inlagg.InlaggId, Inlagg.Inlagg "&_
" FROM Person INNER JOIN (Forum RIGHT JOIN Inlagg ON Forum.ForumId = Inlagg.InlaggId) ON Person.PersonId = Inlagg.PersonId WHERE Org = TRUE ORDER BY [b]1[/b] DESC;", connection, adopenkeyset, adlockoptimistic
```

1 innebär att man sorterar med avseende på 1:a kolumnen i select-listan

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

## #8 — saw, 2002-01-13T23:19Z

Tack LarsG.
Jag vet bara inte hur jag skall tacka dig, du har varit en oehörd stor hjälp, intebara idag utan tidigare.
Kunde jag så skulle det stå blommor och chokolad hos dig nu.

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

## #9 — OveRRidE, 2002-01-14T14:38Z

O fy utav h\*lvete vilka SQL-strulerier! Min hjärna får verkligen härdsmälta av sånt där. ;)

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

## #10 — saw, 2002-01-15T19:11Z

Jag var väldigt glad när LarsG hjälpte mig med min SQL, men tyvärr så fungerade den inte som jag ville.
På indexsidan så visar jag bara medelandena(början av tråden). Vill man läsa mera så får man klicka på tråden.
Nu ville jag ju att om det har kommit ett nytt medelande inne i tråden, så skulle en bild dyka upp, och tråden skulle ligga högst upp (ORDER BY...)
Resultatet av denna SQL som LarsG hjälpte mig med resulterar i att ALLA medelanderna(början till tråd) fick sin bild.

Kan det tänkas att jag måste ha två oberoeende SQLer gämmföra med t ex InlaggID, eller hur skall jag lösa detta??

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

## #11 — saw, 2002-01-15T21:59Z

Löst

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/13792-två-select-i-en-sql
