簡體   English   中英

如何在where子句中過濾組合鍵?

[英]How do you filter a composite key in the where clause?

我正在嘗試使用組合鍵來過濾查詢,但是,我不確定如何在where子句中使用復合鍵來過濾查詢。 XSiteProductItemIdMercuryProductItemId組成一個標識唯一行的復合鍵。

這是我的查詢:

SELECT VMPOrdersExtract.XSiteProductItemId
  ,  VMPOrdersExtract.MercuryProductItemId
FROM Appraisal.ext.VMPOrders AS VMPOrdersExtract
LEFT JOIN dw.DimAppraisal DimApprasial ON DimApprasial.XsiteProductItemId = VMPOrdersExtract.XSiteProductItemId
  AND DimApprasial.MercuryProductItemId = VMPOrdersExtract.MercuryProductItemId
WHERE VMPOrdersExtract.LastSyncDateTime > DimApprasial.LastSyncDateTime
OR (
    VMPOrdersExtract.XSiteProductItemId
    AND VMPOrdersExtract.MercuryProductItemId
) is null

顯然,我在WHERE子句中的OR條件在語法上是錯誤的。 如何僅過濾在DimAppraisal表中為null或不存在的組合鍵記錄?

怎么樣

WHERE VMPOrdersExtract.LastSyncDateTime > DimApprasial.LastSyncDateTime
OR (VMPOrdersExtract.XSiteProductItemId IS NULL AND 
VMPOrdersExtract.MercuryProductItemId IS NULL);

也將其添加到答案中;)

 SELECT VMPOrdersExtract.XSiteProductItemId, VMPOrdersExtract.MercuryProductItemId 
FROM Appraisal.ext.VMPOrders AS VMPOrdersExtract LEFT JOIN dw.DimAppraisal DimApprasial 
ON DimApprasial.XsiteProductItemId = VMPOrdersExtract.XSiteProductItemId AND 
DimApprasial.MercuryProductItemId = VMPOrdersExtract.MercuryProductItemId WHERE 
VMPOrdersExtract.LastSyncDateTime > DimApprasial.LastSyncDateTime OR 
(VMPOrdersExtract.XSiteProductItemId is null AND VMPOrdersExtract.MercuryProductItemId is null)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM