Gå til innhold

Anbefalte innlegg

Har denne selecten (i ett view), som gjør det jeg ønsker, men er noe treg (naturlig nok?). Noen måte å få en mer effektiv ?

 

Base: Oracle 10g

Resultatet returneres til Excel (2007)

 

SELECT t1.ist_avis Avis,TO_DATE(TO_CHAR(t1.ist_dato,'DD.MM.YYYY')) Dato, count(t1.ist_navn) Antall,
(SELECT count(t2.ist_mr) FROM sbs.otinnstikk t2 
WHERE UPPER(t2.ist_mr)='M' AND UPPER(t2.ist_fjern)='N' AND UPPER(t2.ist_navn)!='FULLDISTRIBUSJON' AND t1.ist_avis = t2.ist_avis AND t1.ist_dato = t2.ist_dato
GROUP BY t2.ist_avis,t2.ist_dato) Man,
(SELECT count(t3.ist_mr) FROM sbs.otinnstikk t3 
WHERE (UPPER(t3.ist_mr)='X' OR UPPER(t3.ist_mr)='R') AND UPPER(t3.ist_fjern)='N' AND UPPER(t3.ist_navn)!='FULLDISTRIBUSJON' AND t1.ist_avis = t3.ist_avis AND t1.ist_dato = t3.ist_dato
GROUP BY t3.ist_avis,t3.ist_dato) Rull
FROM sbs.otinnstikk t1
WHERE UPPER(t1.ist_fjern)='N' AND UPPER(t1.ist_navn)!='FULLDISTRIBUSJON'
GROUP BY t1.ist_avis,t1.ist_dato;

 

Den den gjør er å telle opp antall innstikk pr avis pr dag/dato, og hvorden disse innstikkene er fordelt på manuelle (ist_mr=M) eller rull (ist_mr=R eller X ). Ønsker kun å ha med de innstikkene som er satt i produksjon (ist_fjern=N) og det som ikke er fulldistribusjon (ist_navn!='FULLDISTRIBUSJON')

 

Resultatet blir ca slik:

AVIS  DATO		  ANTALL	   MAN	  RULL
----- ---------- --------- --------- ---------
ABBS  02.06.2008		 3		 2		 1
ABBS  03.06.2008		 3		 3
ABBS  04.06.2008		 2				   2
ABBS  05.06.2008		 2		 1		 1
ABBS  06.06.2008		 2				   2

 

Det hjelper å legge på ett parameter i MS query/Excel slik at antall rader som blir returnet blir begrenset av valgt tidsperiode. Men fjernet dette da jeg tenkte at det ville være greiere å gjøre i pivottabellen (i Excel).

 

(Er ikke særlig kjent med JOIN syntaxen, derfor har jeg en "lei tendens" til å sette koblingene i where, selv om dette er gammelt, hvis noen skulle føle ett behov for å påpeke dette)

Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...