我有一个名为PurchaseOrderAccount的表,该表为空。我需要从名为DailyCosts的表中插入帐户代码。另外,我需要从PurchaseOrder.ID插入PurchaseOrderID。这些都是外键约束。没有列将接受Null。这就是我所拥有的:
Insert Into PurchaseOrderAccount (WellID, JobID,ID,PurchaseOrderID,AccountCode)
Select DailyCosts.WellID,
DailyCosts.JobID,
NEWID(),
PurchaseOrder.ID,
DailyCosts.AccountCode
From DailyCosts
inner join
PurchaseOrder
on DailyCosts.Notes =PurchaseOrder.PONumber
Join
PurchaseOrderDailyCost
On DailyCosts.DailyCostID = PurchaseOrderDailyCost.DailyCostID
Where DailyCosts.WellID = '24A-23'
Group By DailyCosts.WellID,
DailyCosts.JobID,
PurchaseOrder.ID,
DailyCosts.AccountCode;
有了这个,我得到191条记录。我只想从DailyCosts获得54的唯一AccountCodes。任何方向,我将不胜感激。
答案 0 :(得分:0)
我认为,如果您想要DailyCosts.AccountCode和PurchaseOrder.ID的所有唯一组合,则必须删除“分组依据”中的DailyCosts.JobID。
当您过滤了DailyCosts.WellID ='24A-23'时,分组依据不会影响它。
Insert Into PurchaseOrderAccount (WellID, ID,PurchaseOrderID,AccountCode)
Select DailyCosts.WellID,
NEWID(),
PurchaseOrder.ID,
DailyCosts.AccountCode
From DailyCosts
inner join
PurchaseOrder
on DailyCosts.Notes =PurchaseOrder.PONumber
Join
PurchaseOrderDailyCost
On DailyCosts.DailyCostID = PurchaseOrderDailyCost.DailyCostID
Where DailyCosts.WellID = '24A-23'
Group By DailyCosts.WellID,
PurchaseOrder.ID,
DailyCosts.AccountCode;
在这里,我相信会有多个JobID导致您的总数达到191,而不是预期的41。请告诉我这是否适合您。