我想在我的数据库中填写PurchaseOrders和PurchaseOrder详细信息表,并使用我已成功登录表中的文件中的数据。任务 是将ST列值获取到特定的目标表(PurchaseOrders和PurchaseOrderDetails)
到目前为止查询(sqlserver 2014& 2012) :
insert into PurchaseOrders(
NameId,
LocationId,
VendorId,
PurchaseOrderDate,
PurchaseOrderSerialNo,
PurchaseOrderCreatBy,
PurchaseOrderCreateOn,
ModBy,
ModOn
)
select
'10',
Locations.Id,
cast (VENDOR as int),
cast(PO_DATE as date),
(select distinct cast(PurchaseOrderNUMBER as int) from StagingTable),
'name',
getdate(),
NULL,
NULL
from
[dbo].[StagingTable] ST
join Locations on Locations.Code = ST.LOCATION
join Vendor on Vendor.Code = ST.VENDOR
在运行此项时,我得到了以下内容,目标表中没有任何内容:
(0 row(s) affected)
PurchaseOrderDetails的相同内容是rqd?
答案 0 :(得分:0)
就结果而言,以下是为我工作的!
if exists (select OrdersSerialNo FROM PurchaseOrders PO join [dbo].[StagingTable] ST on PO.OrdersSerialNo != ST.PurchaseOrder_NUMBER)
begin
insert into PurchaseOrders(
NameId,
LocationId,
VendorId,
PurchaseOrderDate,
PurchaseOrderSerialNo,
PurchaseOrderCreatBy,
PurchaseOrderCreateOn,
ModBy,
ModOn
)
select
@IdName,
Locations.Id,
cast (VENDOR as int),
cast(PO_DATE as date),
(select distinct cast(PurchaseOrderNUMBER as int) from [dbo].[StagingTable]),
'name',
getdate(),
NULL,
NULL
from
[dbo].[StagingTable] ST
inner join PurchaseOrders PO on PO.OrdersSerialNo != ST.PurchaseOrder_NUMBER
inner join Products on Products.Code = ST.ITEMCode
inner join Locations on Locations.Code = ST.LOCATION
where isnumeric(VENDOR) = 1 and isnumeric(PO_NUMBER) = 1 and isdate(PO_DATE) = 1
)
end
对迟到的回应道歉!