Avatar billede noodrem Nybegynder
21. juli 2009 - 09:58 Der er 1 kommentar

Gruppering af data i select statement

Hej

Jeg har følgende query, som jeg ønsker skulle resultere i følgende:

DK            DE
1100          2000

I stedet returnerer den:

DK
1100
2000

:::QUERY:::

declare @dateFrom smalldatetime
declare @dateTo smalldatetime
declare @DK varchar(50)
declare @NO varchar(50)

set @dateFrom = '2009-01-01'
Set @dateTo  = '2009-01-31'



SELECT    COUNT(*) AS DK
FROM        (SELECT DISTINCT countrycode, bookingnr
                      FROM          bookings
                      WHERE      (date BETWEEN @dateFrom AND @dateTo) AND countrycode IN (11, 12)) AS t
UNION ALL

SELECT    COUNT(*) AS DE
FROM        (SELECT DISTINCT countrycode, bookingnr
                      FROM          bookings
                      WHERE      (date BETWEEN @dateFrom AND @dateTo) AND countrycode IN (13, 14)) AS e

::: SLUT :::

Jeg gætter på jeg skal have omskrevet queryen med nogle CASE og END AS, men præcis hvordan kan jeg ikke lure.

Endnu bedre ville det være hvis jeg kunne lave en WHILE statement, der kører løkken igennem indtil alle variabler er tømt.

I øvrigt:
Når jeg prøver at sætte eks. @DK = 11,12 i ovenstående query, får jeg i øvrigt flg. fejl:


Msg 245, Level 16, State 1, Line 12
Conversion failed when converting the varchar value '11,12' to data type int.
Avatar billede gnoname Praktikant
24. juli 2009 - 17:02 #1
SELECT a.AMOUNT AS DK,
      b.AMOUNT AS DE
FROM
(SELECT COUNT(*) AS AMOUNT
FROM  (SELECT DISTINCT countrycode, bookingnr
        FROM  bookings
        WHERE  (date BETWEEN @dateFrom AND @dateTo) AND
                countrycode IN (11, 12)))  a,
(SELECT COUNT(*) AS AMOUNT
FROM  (SELECT DISTINCT countrycode, bookingnr
        FROM    bookings
        WHERE  (date BETWEEN @dateFrom AND @dateTo) AND
                countrycode IN (13, 14))) b
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester