Avatar billede angelenglen Nybegynder
16. april 2012 - 08:16 Der er 3 kommentarer og
1 løsning

MS SQL - limit på UNION udtræk

Jeg har følgende Transact-SQL udtræk:

SELECT
    t.pkid,t.TicketType, t.TicketPrice, t.zoneFromId, t.zoneFromName, t.zoneToId, t.zoneToName, t.PurchaseTime, b.tlf, NULL AS Amount
FROM
    Ticket t, Brugere b
WHERE
    t.brugerId = b.id AND b.tlf = '38383838'


UNION


SELECT
    tt.pkid, NULL AS TicketType, NULL AS TicketPrice, NULL as zoneFromId, NULL AS zoneFromName, NULL AS zoneToId, NULL AS zoneToName, tt.PurchaseTime, b.tlf, tt.Amount
FROM
    Brugere b, Transactions tt
WHERE
    tt.brugerid = b.id AND b.tlf = '38383838' AND tt.TransactType = 'tankop' AND tt.Transact IS NOT NULL AND tt.dibstoken <> 'fejl'
   
   
ORDER BY PurchaseTime DESC



Jeg har brugt en UNION, for at kunne samle de to SELECT udtræk, og sortere på dem fælles.

Men nu vil jeg gerne kunne begrænse antallet af udtrukne poster, til fx de øverste 10 eller 20 af det samlede udtræk.

Det hele skal kunne være i en enkelt query, da det bliver kørt fra et ASP-script.
Avatar billede ramad Praktikant
16. april 2012 - 09:42 #1
Kan du ikke bruge følgende syntaks til det?

SELECT TOP 10 * FROM
(
SELECT
    t.pkid,t.TicketType, t.TicketPrice, t.zoneFromId, t.zoneFromName, t.zoneToId, t.zoneToName, t.PurchaseTime, b.tlf, NULL AS Amount
FROM
    Ticket t, Brugere b
WHERE
    t.brugerId = b.id AND b.tlf = '38383838'

UNION

SELECT
    tt.pkid, NULL AS TicketType, NULL AS TicketPrice, NULL as zoneFromId, NULL AS zoneFromName, NULL AS zoneToId, NULL AS zoneToName, tt.PurchaseTime, b.tlf, tt.Amount
FROM
    Brugere b, Transactions tt
WHERE
    tt.brugerid = b.id AND b.tlf = '38383838' AND tt.TransactType = 'tankop' AND tt.Transact IS NOT NULL AND tt.dibstoken <> 'fejl'
) A
ORDER BY A.PurchaseTime DESC
Avatar billede angelenglen Nybegynder
16. april 2012 - 09:46 #2
Det kan jeg da, vidste bare ikke helt hvordan syntax'en var :-)

Mange tak, læg et svar for points :-D
Avatar billede ramad Praktikant
16. april 2012 - 10:49 #3
Det var da godt at du kunne bruge det :)
Avatar billede angelenglen Nybegynder
16. april 2012 - 10:52 #4
Mange tak for hjælpen.

Vidste godt at det sikkert var simpelt, kunne bare ikke huske hvordan, og Google gav ikke gode resultater på det jeg søgte efter ;-)
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