我们有两个表“ 标题”和“ 请求”。
页眉表具有以下列“ 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
以上示例形式
NewItemHeaderId 1149在请求表(3354,3355)中具有两个条目。
我们需要检查3354和3355 RequestStatus是否为“ MRD-标准化程序待处理”
如果两个状态都相同,那么我们需要检查HeaderStatus,如果不是,则应该为“ MRD-Standardizer Pending”。
例如,结果将如下所示
NewItemHeaderId
---------------
1149
1147未显示,因为RequestStatus和标头状态均为“ MRD-标准化程序待处理”
1148未显示,因为RequestStatus不是“ MRD-标准化程序待处理”
在上表中,HeaderStatus将是1149 NewItemHeaderId的“ MRD-待定标准化程序”
它将返回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
答案 0 :(得分:0)
我想您应该添加条件
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
WHERE NIH.TPSPStatus = 'MRD - Standardizer Pending'
AND NIR.Status = 'MRD - Standardizer Pending'