+----+------------+------------+--------+------+
| ID | Sdate | Edate | Reason | Type |
+----+------------+------------+--------+------+
| 1 | 5/30/2016 | | | A |
| 1 | 1/19/2016 | 12/15/2016 | USD | B |
| 1 | 11/20/2016 | 10/1/2016 | IT | B |
| 2 | 10/25/2016 | | | A |
| 2 | 9/22/2016 | 7/11/2016 | SD | B |
| 2 | 2/13/2016 | | | A |
| 2 | 1/1/2016 | 4/3/2016 | IT | B |
+----+------------+------------+--------+------+
Для каждого ID, нужно выбрать минимальный SDATE для Type = A и максимальной EDATE для Тип = B, наряду с причиной разряда, связанной с типом = B. Есть больше, чем просто два типов, но я показал A и B в качестве примера
Желаемая Выход:
+-------------+-----------+------------+------------------+
| Customer ID | Startdate | Enddate | Discharge Reason |
+-------------+-----------+------------+------------------+
| 1 | 5/30/2016 | 12/15/2016 | USD |
| 2 | 2/13/2016 | 7/11/2016 | SD |
+-------------+-----------+------------+------------------+
Попытка:
Это дает мне пустой столбец STARTDATE поскольку INNER JOIN на внешнем связанном подзапросе, который используется для получения Max Edate
и связанного с ним Discharge Reason
, заставляет запрос игнорировать Type=A
и, следовательно, нет начальных данных. Как я могу объединить эти работы?
измените ваш вопрос, чтобы включить эту ** критическую деталь ** «* В исходной таблице, типы намного больше. .. * "in * Vladimer's * ответ. Потому что в вашем вопросе вы конкретно указываете Type = [A, B], как будто это единственные варианты. – Stephen