---
title: "Sql-sats"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/113114-sql-sats"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "k0ffe"
published: "2004-10-07T19:33:27.000Z"
updated: "2004-10-12T09:22:43.000Z"
replies: 25
views: 600
page: 1
pages: 2
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/113114-sql-sats"
---

# Sql-sats

_Sida 1 av 2._

## #1 — k0ffe, 2004-10-07T19:33Z

Tjena, har lite probs.
Jag har denna SQL-fråga för att sortera senaste tre nyheterna, ur tre olika tabeller.

```
				sql = " select * from nyheter_e order by Datum desc " &_
"union select * from nyheter_b order by Datum desc " &_
"union select * from nyheter_u order by Datum desc "
```

Men då sorterar den oavsett tabell efter senaste datum.
T.ex.

Undomsnyhet - 2004-11
Elitnyhet - 2004-10
Ungdomsnyhet - 2004-9

Om jag vill ha den senaste ur varje tabell, och sortera endast dem efter datum, hur ska sql:en vara då? 

T.ex. 

Ungdomsnyhet - 2004-11
Elitnyhet - 2004-10
Div3nyhet - 2004-7 istället för Ungdomsnyhet 2004-09.

Hänger ni med? :)

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

## #2 — J.N., 2004-10-08T08:07Z

HEJ!

Hur blir det om du använder TOP 1 istället för \*? Då bör du få en av varje, nu får du alla nyheter.

Denna tråd känns felpostad!

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

## #3 — LarsG, 2004-10-08T08:56Z

```
select n.*,1 as q
 from nyheter_e as n
union all
select n.*,2 
from nyheter_b as n
union all
select n.*,3
 from nyheter_u  as n
order by q,Datum desc
```

flyttas från ASP

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

## #4 — k0ffe, 2004-10-08T09:17Z

J.N. -\> det funkade inte, tänkte så jag med :)

Ok, LarsG vill du förklara koden lite?

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

## #5 — LarsG, 2004-10-08T11:51Z

Förklara vad då? Jag ser inget konstigt.

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

## #6 — k0ffe, 2004-10-08T12:07Z

> select n.\*,1 as q

?

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

## #7 — LarsG, 2004-10-08T12:26Z

n.\* hämtar alla kolumner från tabellen n
Du kan lägga till godtyckliga uttryck i en select-lista och namnge dessa (med q t.ex). Namnet kan man använda i order by. 

Detta värde används för att markera vilken tabell de olika posterna kommer ifrån. När man anger detta värde i order by så kommer dbms att sortera alla poster med värdet 1 i kolumnen q först därefter de med värdet 2 osv. Inom varje sådan grupp sorteras sedan posterna med avseende på datum i fallande ordning.

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

## #8 — k0ffe, 2004-10-08T14:41Z

Okay, tror jag hajjar. Men jag får felmeddelande?

```
 Microsoft VBScript compilation error '800a0409' 

Unterminated string constant 

/meny.asp, line 109 

sql = " select n.*,1 as q
-------------------------^
```

Nån aning om varför?

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

## #9 — LarsG, 2004-10-08T14:46Z

Om du vill skriva en sträng över flera rader i VB-skript så måste du göra

```
SQL = "select n.*,1 as q " & _
"from ... "
```

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

## #10 — k0ffe, 2004-10-08T14:52Z

:) Ok.

Men det blir fortfarande inte rätt?
Nu hämtar den bara de tre senaste ur nyheter_e-tabellen.

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

## #11 — LarsG, 2004-10-08T14:56Z

Jag läste om ditt första inlägg och förstår nu vad du vill. Vilken databashanterare använder du?

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

## #12 — k0ffe, 2004-10-08T14:56Z

Access? OLEDB?

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

## #13 — LarsG, 2004-10-08T15:00Z

Ok, JET alltså.

```
sql = " select top 1 * from nyheter_e order by Datum desc " &_
"union select top 1 * from nyheter_b order by Datum desc " &_
"union select top 1 * from nyheter_u order by Datum desc "
```

dvs, du skulle ha litat på J.N. från början.

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

## #14 — k0ffe, 2004-10-08T15:02Z

jag har gjort så! It wont work... den tar den senaste ur nyheter_e, men från nyheter_u och \_b tar den ut två från 2003-08-12? :)

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

## #15 — LarsG, 2004-10-08T15:05Z

Det är så top fungerar i Jet SQL. Om det finns flera med samma datum som det högsta så får du med dom också. Du får lägga till fler kolumner i order by så att det sorterar på blir unikt.

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

## #16 — k0ffe, 2004-10-08T18:31Z

Ok, men dom andra två är inte dom nyaste! Dom är gamla...

Hur menar du? Behöver verkligen få det här att fungera, blir galen!

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

## #17 — LarsG, 2004-10-08T19:08Z

Hur fungerar frågorna om du använder dem var för sig?

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

## #18 — k0ffe, 2004-10-09T13:02Z

Hur menar du då? Exempel?

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

## #19 — LarsG, 2004-10-09T13:29Z

Jag menar varje delfråga som ingår i unionen.

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

## #20 — k0ffe, 2004-10-09T17:02Z

Hur ska jag dela upp dem?

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/113114-sql-sats  
Nästa sida: https://www.webforum.nu/amne/databaser-sql/113114-sql-sats/page2.md
