---
title: "MS SQL 2000: Group by quarter"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/150645-ms-sql-2000-group-by-quarter"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Mattias Nordin"
published: "2006-08-28T11:03:40.000Z"
updated: "2006-08-30T14:04:06.000Z"
replies: 11
views: 474
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/150645-ms-sql-2000-group-by-quarter"
---

# MS SQL 2000: Group by quarter

## #1 — Mattias Nordin, 2006-08-28T11:03Z

Hej, nu har jag kört fast igen.

Jag försöker få till en fråga som räknar ihop alla rader som finns och så vill jag gruppera dessa i kvartalsform.

Tabellen ser ut så här:

ID \| ReminderDate
\--------------------------
1 \| 2006-08-01 12:12:12
2 \| 2006-08-02 12:13:22

Jag har provat olika varianter med GROUP BY men det vill sig inte.

Hänvisning i rätt riktning behövs.   :stud

Resultatet vill jag ska se ut så här:

KVARTAL \| ANTAL
\------------------------
2006 Q1 \| 12 
2006 Q2 \| 4

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

## #2 — LarsG, 2006-08-28T12:14Z

```
select cast(year(reminderDate) as char(4)) +  
         ' Q' + cast(datepart(q,reminderDate) as char(1)) as KVARTAL,
         count(*) as ANTAL
 from t
group by year(reminderDate), datepart(q,reminderDate)
```

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

## #3 — Mattias Nordin, 2006-08-29T07:17Z

Hej LarsG, fint väder idag !

My bad... Det visade sig att applikationen arbetar mot en Access 2003 databas.

En del tabeller forwarderar vidare frågorna till den större MS Sql servern på något sätt men inte denna tabellen.

Antar att detta ställer till problem med frågan ovan? Jag får syntax error när jag försöker testköra frågan i Access 2003. 

```
select cast(year(Reminder.AddDate) as char(4)) +  
         ' Q' + cast(datepart(q,Reminder.AddDate) as char(1)) as KVARTAL,
         count(*) as ANTAL
 from Reminder
group by year(Reminder.AddDate), datepart(q,Reminder.AddDate)
```

Hur fungerar CAST ?

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

## #4 — Lasp, 2006-08-29T07:26Z

CAST plockar väl en del av en kolumn! Finns defaultvärden och framförallt datumbitar.

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

## #5 — @nders, 2006-08-29T07:27Z

> CAST plockar väl en del av en kolumn! Finns defaultvärden och framförallt datumbitar.

Nej, CAST konverterar ett värde till en bestämd datatyp, i LarsGs exempel char.

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

## #6 — Mattias Nordin, 2006-08-29T08:01Z

Har ni någon ide om vad som genererar syntax error felmeddelandet? :)

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

## #7 — Engine^, 2006-08-29T08:07Z

Det borde väl fungera om du helt enkelt skippar CAST()

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

## #8 — LarsG, 2006-08-29T08:11Z

Access använder Cstr för att konvertera till char.

Argumentet till datepart anges med apostrofer 'q'

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

## #9 — Mattias Nordin, 2006-08-30T12:59Z

```
select cast(year(Reminder.AddDate) AS cstr(4)) from Reminder
```

Ger syntax error (missing operator)... :(

```
SELECT Year(Reminder.AddDate) AS Expr1
FROM Reminder;
```

Fungerar.

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

## #10 — LarsG, 2006-08-30T13:02Z

```
select cstr( ... )
```

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

## #11 — Mattias Nordin, 2006-08-30T13:43Z

Jag är verkligen ute och cycklar...

```
select cstr(year(Reminder.AddDate) as char(4))
from SUAReminder
```

Ger syntax error (missing operator). :(

Jag har känslan av att det är "char(4))" som den inte tycker om.  :q

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

## #12 — LarsG, 2006-08-30T14:04Z

Ja, ta bort det.

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/150645-ms-sql-2000-group-by-quarter
