У нас есть две таблицы " Заголовок " и " Запрос ".
Таблица заголовков имеет следующие столбцы " NewItemHeaderId ", " HeaderStatus "
Таблица запросов имеет следующие столбцы " NewItemRequestid ", " RequestStatus ", " NewItemHeaderId "
Табличные значения, как показано ниже при использовании левого соединения
NewItemHeaderId | HeaderStatus | NewItemRequestId | RequestStatus
1147 MRD - Standardizer Pending 3351 MRD - Standardizer Pending
1148 TPSP - QC Pending 3352 TPSP - QC Pending
1148 TPSP - QC Pending 3353 TPSP - QC Pending
1149 TPSP - QC Pending 3354 MRD - Standardizer Pending
1149 TPSP - QC Pending 3355 MRD - Standardizer Pending
Мне нужно получить NewItemHeaderId, где выполняются следующие условиякак показано ниже
- RequestStatus должен быть " MRD - Ожидание стандартизатора "
- HeaderStatus также должно быть " MRD - Ожидание стандартизатора "
приведенный выше пример
NewItemHeaderId 1149, имеющий две записи в таблице запросов (3354,3355).
нам нужно проверить 3354 и 3355 RequestStatus будет "MRD"- Standardizer Pending "
, если оба имеют одинаковый статус, тогда нам нужно проверить HeaderStatus, это должно быть" MRD - Standardizer Pending ", если нет, нам нужно получить этот NewItemHeaderId.
, например, результатбудет как показано ниже
NewItemHeaderId
---------------
1149
1147 nне отображается, так как RequestStatus и состояние заголовка «MRD - ожидание стандартизатора»
1148 не отображаются, поскольку RequestStatus не «MRD - ожидание стандартизатора»
В приведенной выше таблице HeaderStatus будет «MRD»- Ожидание стандартизации "для 1149 NewItemHeaderId
будет возвращено значение NULL.
над таблицей SQL запрос, как показано ниже
SELECT NIH.NewItemHeaderId,NIH.TPSPStatus AS 'Header Status',
NIR.NewItemRequestId,NIR.Status AS RequesStatus
FROM NewItemHeader NIH
LEFT JOIN NewItemRequest NIR ON NIR.NewItemHeaderId = NIH.NewItemHeaderId