Avatar billede elom Nybegynder
02. januar 2007 - 23:44 Der er 5 kommentarer

SQL sætning

Jeg har en tabel, data, der indeholde attributterne dato og antal.
Jeg skal lave en summering over antal i en given perioden. Den har jeg formuleret på følgende måde :

select sum(antal) from data where dato >='XXX' and dato <= 'XXX';

Problemet er, at jeg ikke skal have summen af antal i månederne juni, juli og august.

Hvordan kunne det formuleres ?
Avatar billede erikjacobsen Ekspert
02. januar 2007 - 23:49 #1
select sum(antal) from data where (dato >='XXX' and dato <= 'sidstedagimaj') or (dato >='førstedagiseptemener' and dato <= 'XXX')
Avatar billede elom Nybegynder
03. januar 2007 - 10:58 #2
Problemet er at dato intervallet kan strække sig over mere end et år. Derfor mener jeg desværre ikke det er en løsning på problemet.
Avatar billede pgroen Nybegynder
03. januar 2007 - 12:16 #3
I Oracle ville man fx. skrive noget i stil med:

SELECT sum(antal)
  FROM data
WHERE to_char(dato,'MM') NOT IN ('06','07','08')
  AND dato between 'xxx' AND 'yyy';
Avatar billede kjulius Novice
03. januar 2007 - 22:25 #4
select sum(antal) from data where dato >='XXX' and dato <= 'XXX' and month(dato) not in (6, 7, 8);

eller

select sum(antal) from data where dato between 'XXX' and 'XXX' and month(dato) not between 6 and 8;
Avatar billede kjulius Novice
04. januar 2007 - 09:03 #5
Ovenstående skulle være standard-sql, som vil kunne forstås af de fleste databaser. Jeg bruger selv DB2...
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