Avatar billede chron Nybegynder
23. februar 2006 - 02:54 Der er 2 kommentarer

Hjælp med at samle flere queries til én.

Jeg udfører én query flere gange, hvor jeg hver gang forøger INTERVAL med 30.. Det må være muligt at samle disse queries til én.

1) SELECT COUNT(groupname) FROM mytable WHERE groupname = '<groupname>' AND DATE_SUB(NOW(),INTERVAL 60 DAY) <= row_date AND AND DATE_SUB(NOW(),INTERVAL 30 DAY) > row_date;
2) SELECT COUNT(groupname) FROM mytable WHERE groupname = '<groupname>' AND DATE_SUB(NOW(),INTERVAL 90 DAY) <= row_date AND AND DATE_SUB(NOW(),INTERVAL 60 DAY) > row_date;
3) SELECT COUNT(groupname) FROM mytable WHERE groupname = '<groupname>' AND DATE_SUB(NOW(),INTERVAL 120 DAY) <= row_date AND AND DATE_SUB(NOW(),INTERVAL 90 DAY) > row_date;

Og så videre.
Det skal udføres 5 gange, med én query, sådan så jeg kan retrieve data som følger: 60-30,90-60,120-90,osv.
Avatar billede chron Nybegynder
23. februar 2006 - 22:24 #1
Selvfølgelig uden de dobbelte AND's.
Avatar billede pidgeot Nybegynder
01. marts 2006 - 00:18 #2
Du kan bruge UNION for at sætte resultatet af en forespørgsel efter en anden - hvis vi lige nøjes med de tre du har postet her vil det se sådan ud:

SELECT COUNT(groupname) FROM mytable WHERE groupname = '<groupname>' AND DATE_SUB(NOW(),INTERVAL 60 DAY) <= row_date AND DATE_SUB(NOW(),INTERVAL 30 DAY) > row_date
UNION
SELECT COUNT(groupname) FROM mytable WHERE groupname = '<groupname>' AND DATE_SUB(NOW(),INTERVAL 90 DAY) <= row_date AND DATE_SUB(NOW(),INTERVAL 60 DAY) > row_date
UNION
SELECT COUNT(groupname) FROM mytable WHERE groupname = '<groupname>' AND DATE_SUB(NOW(),INTERVAL 120 DAY) <= row_date AND DATE_SUB(NOW(),INTERVAL 90 DAY) > row_date;

Hvis vi siger de enkelte forespørgsler returnerer hhv. 50, 20 og 30, så vil resultatet fra denne store forespørgsel blive:

50
20
30

Med andre ord, kommer det ud i samme rækkefølge som det kommer ind.
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