Just nu i M3-nätverket
Gå till innehåll

Hur skriver jag ut värden även de som är 0


amirooo

Rekommendera Poster

Håller på att sätta mig in i SQL, har en liten fråga...

 

Har t.ex värden på:

 

1,1,1,1,3,3,3,3,4,4,4,4,6,6

 

Sen vill jag att det ska räkna ut hur många 1:or samt 3.or det finns, då använder jag count-functionen. Men hur får jag även att den ska skriva ut att det finns 0 st 2.or, 0 st 5.or osv..

 

tack på förhand...

 

Länk till kommentar
Dela på andra webbplatser

försökte med samma tänkande på min DB men det går inte...

 

Det jag har skrivit är...

 

Select tidpunkt, count(bokning_id) as kunder from bokning b

where (tidpunkt>'2005-12-25') and (tidpunkt<'2006-01-01')

group by b.tidpunkt order by tidpunkt

 

Under en viss tidpunkt så har det gjort ett ex antal bokningar....

 

T.ex

Den 26/12 har det gjort 10 boknignar

Den 27/12 har det gjorts 0 boknignar

Den 28/12 har det gjorts 9 boknignar

Den 29/12 har det gjorts 0 boknignar

Den 30/12 har det gjorts 3 boknignar

Den 31/12 har det gjorts 0 boknignar

 

När jag kör min sats så skriver det ut de tidpunkter där en vissboknig har gjort.

 

Hur måste jag skriva om den för att få me dem datum där 0 bokningar har skett

 

tack på förhand

 

Länk till kommentar
Dela på andra webbplatser

Lite seg nu, men den enda lösning jag ser är att lösa det i en stored procedure. Där kan jag tänka mig flera metoder.

 

- En osmidig variant är att loopa igenom intervallet och för varje datum plocka ut antalet träffar ur tabellen och lägga till dessa i en temp-tabell som du sedan returnerar.

 

- Skapa en temp-tabell som innehåller samtliga datum i intervallet. Gör sedan en left outer join med datumtabellen till vänster och bokningstabellen till höger.

 

Så här tänker jag mig att den slutliga frågan i SP:n blir:

SELECT t1.dt, t2.BoknDatum, COUNT(t2.BoknDatum) AS Counter
FROM         dbo.DatumTabell t1 LEFT OUTER JOIN
                     dbo.BokningsTabell t2 ON t2.BoknDatum = t1.dt
GROUP BY t1.dt, t2.BoknDatum
ORDER BY t1.dt

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...