Questione : Come posso comprendere i mesi con le file zero in vendite dal rapporto del Month

Ciao i tipi, il

I hanno TSQL per ottenermi i dati per un rapporto/grafico che mostra le vendite entro il mese.  Tuttavia, mentre restituisce i valori corretti se non ci sono file per un mese particolare niente è restituito.  In una tal situazione devo restituire una fila supplementare con un valore zero per ogni mese mancante. il

How può il meglio di I realizzare questo soddisfa?  

Chris Bray
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
1:
2:
3:
4:
5:
6:
7:
8:
9:
ANNO notpretty del >SELECT " del class= " " di codeSnippet797449 del id= del
           
class= del

Risposta : Come posso comprendere i mesi con le file zero in vendite dal rapporto del Month

>> ancora, non interamente pratico.  Ci concluderemmo in su con una tabella enorme con giornaliere da MinDate a MaxDate incluso.  Ci deve essere un migliore senso? <>
Accosento.

Invece, generare una tabella dei numeri sequenziali -- una tabella “del riscontro„, se già non avete uno.
Allora potete fare qualcosa come sotto.

OGGETTO: meccanismi della tabella del riscontro::
Appena numeri sequenziali da 0 a qualunque, dicono 100.000.  Specificare un indice unico e ragruppato sul numero, con un fillfactor di 100 (questa tabella non sarà mai aggiornata o inserito fra le file attuali, così non ci è esigenza di freespace nella tabella).  Per la prestazione massima, fissarla a passivo (if/when dovete aggiungere le file, temporaneamente lo regolereste naturalmente ancora a updateable).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
DICHIARARE il datetime del @startDate
DICHIARARE il datetime del @endDate

SELEZIONARE L'ANNO (DATEADD (MESE, sn.num, TransactionDate)) COME TransactionYear,
MESE (DATEADD (MESE, sn.num, TransactionDate)) COME TransactionMonth,
SOMMA (unir (BaseDebitAmount, 0) - si uniscono (BaseCreditAmount, 0)) COME GrossMonthlySales

Da Sn sequentialNumbersTable 
ESTERNI DI SINISTRA UNISCONO GeneralJournal su TransactionDate FRA DATEADD (MESE, sn.num, @startDate) E DATEADD (ms, -3, DATEADD (MESE, sn.num + 1, @startDate))

DOVE sn.tally FRA 0 E DATEDIFF (MESE, @startDate, @endDate)
E… altri termini come prima…
Altre soluzioni  
 
programming4us programming4us