Вопрос : Как могу я включить месяцы с zero рядками в сбывания отчетом о Месяца

Hi ванты,

I имеют TSQL для того чтобы получить мне данные для рапорта/диаграммы показывая сбывания к месяц.  Однако, пока оно возвращает правильно значения если не будут рядков на определенный месяц, то ничего возвращено.  В такой ситуации мне нужно возвратить дополнительный рядок с zero значением на каждый пропавший месяц.

How может самое лучшее I достигнуть этого угождает?  

Chris Bray
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
1:
2:
3:
4:
5:
6:
7:
8:
9:
ГОД >SELECT " class= " " codeSnippet797449 id=
           
class=

Ответ : Как могу я включить месяцы с zero рядками в сбывания отчетом о Месяца

>> снова, вс практически.  Мы закончились бы вверх с огромной таблицей с ежедневным от MinDate к включенному MaxDate.  Должно быть более лучшая дорога? <>
Я соглашаюсь.

Вместо, создайте таблицу последовательных номеров -- таблица «бирки», если вы уже не имеете одно.
После этого вы можете сделать что-то как ниже.

RE: механики таблицы бирки::
Как раз последовательные номера от 0 к, говорят 100.000.  Определите уникально, связанный индекс на номере, с fillfactor 100 (эта таблица никогда не будет обновлена или после того как оно введены между существующий рядками, настолько не будет потребности для freespace в таблице).  Для максимальной производительности, установите ее к только для чтения (if/when вам нужно добавить рядки, естественно вы временно устанавливали бы его к updateable снова).
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
ОБЪЯВИТЕ datetime @startDate
ОБЪЯВИТЕ datetime @endDate

ВЫБЕРИТЕ ГОД (DATEADD (МЕСЯЦ, sn.num, TransactionDate)) КАК TransactionYear,
МЕСЯЦ (DATEADD (МЕСЯЦ, sn.num, TransactionDate)) КАК TransactionMonth,
СУММА (коалесцируйте (BaseDebitAmount, 0) - коалесцируйте (BaseCreditAmount, 0)) КАК GrossMonthlySales

ОТ sequentialNumbersTable sn 
ЛЕВЫЕ НАРУЖНЫЕ СОЕДИНЯЮТ GeneralJournal НА TransactionDate МЕЖДУ DATEADD (МЕСЯЦЕМ, sn.num, @startDate) И DATEADD (MS, -3, DATEADD (МЕСЯЦ, sn.num + 1, @startDate))

ГДЕ sn.tally МЕЖДУ 0 И DATEDIFF (МЕСЯЦЕМ, @startDate, @endDate)
И… другие условия как раньше,…
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us