У меня есть две таблицы, которые на самом деле не связаны, но их необходимо объединить. Поэтому я использую объединение всех двух таблиц. Объединенные таблицы упорядочены по дате, поэтому строки из одной таблицы распределяются между строками из другой таблицы. Что мне нужно сделать, так это получить счетчик столбцов, чтобы я мог группировать элементы.Инкрементный номер группы на основе значения строки SQL Server 2008
Чтобы пояснить далее, таблица A содержит даты, когда контейнер опустел, а таблица B содержит ежедневные записи для содержимого контейнера. Мне нужно объединить две таблицы, поэтому у меня есть одна таблица, где я могу получить сумму информации для контейнера до того, как контейнер будет опустошен.
Так что мне нужно что-то вроде этого:
Таблица A:
Location_ID Empty Date
123 3/2/13
123 3/10/13
123 4/1/13
Таблица B:
PSI Entry Date Location_ID
120 2/28/13 123 (same for all)
130 3/1/13
100 3/8/13
110 3/9/13
200 3/18/13
180 3/20/13
Так unioned стол после того, как какая-то магия будет выглядеть так:
Таблица C ...:
Location_ID Date PSI Emptied
123 2/28/13 120 0
123 3/1/13 130 0
123 3/2/13 null 1
123 3/8/13 100 0
123 3/9/13 110 0
123 3/10/13 null 1
123 3/18/13 200 0
123 3/20/13 180 0
123 4/1/13 null 1
Что мне нужно сделать, это есть группировки, такие, что я могу иметь таблицу, как этот
Таблица C_b
Location_ID Date PSI Emptied Group
123 2/28/13 120 0 1
123 3/1/13 130 0 1
123 3/2/13 null 1 1
123 3/8/13 100 0 2
123 3/9/13 110 0 2
123 3/10/13 null 1 2
123 3/18/13 200 0 3
123 3/20/13 180 0 3
123 4/1/13 null 1 3
Как могу ли я получить эту группировку таким образом? Я должен заставить его работать в SQL Server 2008. Я попытался использовать Count, Rank и Row_Number. Но проблема в том, что он не будет работать с подсчетом, он просто скажет общее количество в каждой строке.
Это было бы так, так, так гораздо проще в SQL Server 2012. –
Кроме того, эти ужасные форматы даты. –
На самом деле, в 2012 году я работал отлично, но потом мы обнаружили, что наша производственная база работает в 2008 году, поэтому нам пришлось понизить нашу базу данных разработчиков. Поэтому я слышу тебя. Кроме того, обратите внимание, что эти данные не являются точным представителем фактического формата моих данных. Я упростил это для объяснения проблемы. – Andrew