---
title: "Incorrect syntar near Select"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/151113-incorrect-syntar-near-select"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Addeladde"
published: "2006-09-08T23:46:19.000Z"
updated: "2006-09-09T10:06:21.000Z"
replies: 3
views: 298
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/151113-incorrect-syntar-near-select"
---

# Incorrect syntar near Select

## #1 — Addeladde, 2006-09-08T23:46Z

Hej

Jag försöker göra om denna kod från att ha fungerat i Access men nu ska den fungera i MS SQL 2005 istället.

```
Select a.*, l.lektionDatum, 
(Case When cast(Select Count(*) 
from narvaro as n where a.anvandarID = n.anvandarID and l.lektionID = n.lektionID)) 
as decimal(10,2) > 0 
Then cast(Select n.narvaroTyp from narvaro as n 
where a.anvandarID = n.anvandarID and l.lektionID = n.lektionID) as decimal(10,2) 
Else cast(0) as decimal(10,2) End) as narvaro 
From anvandare a, lektioner as l, kursmedlemskap as km 
Where l.kursID = 184 
And km.kursID = 184 
And km.anvandarID = a.anvandarID 
And l.lektionDatum <= '2006-09-09 01:40:35' 
And a.anvandarTyp = 0 
Order by a.anvandarFornamn, a.anvandarEfternamn, l.lektionDatum ASC
```

Får felet incorrect syntax ner keyword Select.

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

## #2 — emission, 2006-09-09T09:56Z

cast:en kräver en parentes, och det gör subselecten också.

Och varför casta till decimal? Värdet kan ju aldrig bli något annat än ett heltal.

Frågan borde bli mångfalt effektivare så här:

```
Select a.*, l.lektionDatum, isnull(n.narvarotyp,0) as narvaro
From anvandare a, lektioner as l, kursmedlemskap as km
left outer join narvaro n on a.anvandarID = n.anvandarID and l.lektionID = n.lektionI
Where l.kursID = 184 
And km.kursID = 184 
And km.anvandarID = a.anvandarID 
And l.lektionDatum <= '2006-09-09 01:40:35' 
And a.anvandarTyp = 0 
Order by a.anvandarFornamn, a.anvandarEfternamn, l.lektionDatum ASC
```

...men borde inte anvandare joinas ihop med kursmedlemskap, typ "a.anvandarId=km.anvandarId"?

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

## #3 — Addeladde, 2006-09-09T09:56Z

Det får inte vara flera order by upptäckte jag.

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

## #4 — Addeladde, 2006-09-09T10:06Z

> **emission skrev:**
>
> cast:en kräver en parentes, och det gör subselecten också.
> 
> Och varför casta till decimal? Värdet kan ju aldrig bli något annat än ett heltal.
> 
> Frågan borde bli mångfalt effektivare så här:
> 
>
>
> ```
> Select a.*, l.lektionDatum, isnull(n.narvarotyp,0) as narvaro
> From anvandare a, lektioner as l, kursmedlemskap as km
> left outer join narvaro n on a.anvandarID = n.anvandarID and l.lektionID = n.lektionI
> Where l.kursID = 184 
> And km.kursID = 184 
> And km.anvandarID = a.anvandarID 
> And l.lektionDatum <= '2006-09-09 01:40:35' 
> And a.anvandarTyp = 0 
> Order by a.anvandarFornamn, a.anvandarEfternamn, l.lektionDatum ASC
> ```
>
> 
> 
> 
> ...men borde inte anvandare joinas ihop med kursmedlemskap, typ "a.anvandarId=km.anvandarId"?

Hej

Jag vill få fram den post i databasen där ett datum ligger närmast dagens datum. I första hand ska den öppna datum som kommer men finns inget sådant så ska den öppna ett tidigare datum.
<http://www.webforum.nu/showthread.php?t=141079&highlight=union+lektion>
Det funkade i Access men nu kör jag MS SQL

Min lösning verkar ändå ge samma poster som den gör i Access.
Visst decimal är grymt onödigt ska byta det.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/151113-incorrect-syntar-near-select
