У меня есть таблица с данными, как этотSQL Server - комплексная группа по - Пробелы и острова
+-------------+--------------+------------+----------------+
| CustomerSID | StartDateSID | EndDateSID | MarketingOptIn |
+-------------+--------------+------------+----------------+
| 12345 | 20101019 | 20131016 | Y |
| 12345 | 20131017 | 20140413 | Y |
| 12345 | 20140414 | 20140817 | N |
| 12345 | 20140818 | 20141228 | N |
| 12345 | 20141229 | 20150125 | Y |
| 12345 | 20150126 | 0 | Y |
+-------------+--------------+------------+----------------+
мне нужно, чтобы создать представление на вершине этой таблицы, чтобы иметь данные, отформатированные в указанном ниже формате для флага , в основном продолжительность, для которой флаг был Y или N. (EndDateSID - 0 в настоящее время активен, поэтому сегодняшняя дата)
+-------------+--------------+------------+----------------+
| CustomerSID | StartDateSID | EndDateSID | MarketingOptIn |
+-------------+--------------+------------+----------------+
| 12345 | 20101019 | 20140413 | Y |
| 12345 | 20140414 | 20141228 | N |
| 12345 | 20141229 | 20150825 | Y |
+-------------+--------------+------------+----------------+
Большинство клиентов имеют только изменение в их флаге один раз, поэтому ниже запрос работает:
SELECT
CH1.CustomerSID
,MIN(CH1.StartDateSID) StartDate
,MAX(ISNULL(NULLIF(CH1.EndDateSID,0),CONVERT(INT, CONVERT(VARCHAR, GETDATE(), 112)))) EndDate
,CH1.MarketingOptIn
FROM DWH.DimCustomerHistory CH1
GROUP BY CH1.CustomerSID, CH1.MarketingOptIn
ORDER BY CH1.CustomerSID, CH1.MarketingOptIn
Как достичь ожидаемого результата для клиентов, подобных указанным выше, с изменениями в значке более одного раза?
EDIT: В соответствии с рекомендацией GarethD, название изменено, чтобы облегчить поиск других.
Привет Рохит Добро пожаловать в StackOverflow, в следующий раз попытаться обеспечить [** SqlFiddle ** ] (http://sqlfiddle.com/#!15/5368b/6), чтобы мы могли лучше понять проблему и дать вам ответ намного быстрее. Также прочитайте [** Как спросить **] (http: /stackoverflow.com/help/how-to-ask) Также читайте [** Как создать минимальный, полный и проверенный пример. **] (http://stackoverflow.com/help/mcve) –
Возможный дубликат из [Gro (http://stackoverflow.com/questions/10110026/group-data-by-the-change-of-grouping-column-value-in-order) – Bulat
Привет @ JuanCarlosOropeza, спасибо за ваши предложения, я последую за ними в следующий раз. – Rohit