/ / Dlaczego planowanie zadań SQL nie przenosi wszystkich rekordów w pewnym momencie? - sql, sql-server, database, job-scheduling

Dlaczego planowanie zadań SQL nie przenosi wszystkich rekordów w pewnym momencie? - sql, sql-server, database, job-scheduling

Ustalam harmonogram pracy na co dzień. Kiedy sprawdzałem rekordy następnego dnia, rekordy nie zostały kiedyś całkowicie przeniesione. Nie wiem dlaczego.

Oto moje zapytanie

INSERT INTO [HQWebMatajer].[dbo].[F_ItemDailySalesParent]
(
[ItemID]
,[StoreID]
,[ItemLookupCode]
,[DepartmentID]
,[CategoryID]
,[SupplierID]
,[Time]
,[Qty]
,[ExtendedPrice]
,[ExtendedCost]
)
SELECT
[ItemID]
,[StoreID]
,[ItemLookupCode]
,[DepartmentID]
,[CategoryID]
,[SupplierID]
,[Time]
,[Qty]
,[ExtendedPrice]
,[ExtendedCost]
FROM
[HQMatajer].[dbo].[JC_ItemDailySalesParent]
where time=convert(Date,getdate()-1)

Znaleziono łącznie rekordy [JC_ItemDailySalesParent] = 21027 i wszystkie rekordy włączone [F_ItemDailySalesParent] = 18741 w dniu 6 marca 2017 r

Jeśli myślisz, że mogłem pominąć pewną kolumnę lub coś innego! ... Wtedy wykonam to samo zapytanie, zmieniając warunek where time=convert(Date,getdate()). Następnie wykonał kompletny rekord bez zaginięcia.

Uwaga: Obie tabele są harmonogramem prac. [JC_ItemDailySalesParent] tabela będzie działać o 2 rano. F_ItemDailySalesParent będzie działać o wczesnym rankiem 6 o ck.

Nie pytaj mnie, dlaczego dwie tabele z tym samym rekordem.

Dzięki,

Odpowiedzi:

0 dla odpowiedzi № 1

Zawsze staraj się mieć unikalny identyfikator w tabeli. Zakładając połączenie ItemID, StoreID, ItemLookupCode, DepartmentID, CategoryID, SupplierID, Time są unikalne:

INSERT INTO HQWebMatajer.dbo.F_ItemDailySalesParent
( ItemID
, StoreID
, ItemLookupCode
, DepartmentID
, CategoryID
, SupplierID
, Time
, Qty
, ExtendedPrice
, ExtendedCost
)
SELECT ItemID
, StoreID
, ItemLookupCode
, DepartmentID
, CategoryID
, SupplierID
, Time
, Qty
, ExtendedPrice
, ExtendedCost
FROM HQMatajer.dbo.JC_ItemDailySalesParent src
LEFT JOIN  HQWebMatajer.dbo.F_ItemDailySalesParent tgt
ON tgt.ItemID = src.ItemID
AND tgt.StoreID = src.StoreID
AND tgt.ItemLookupCode = src.ItemLookupCode
AND tgt.DepartmentID = src.DepartmentID
AND tgt.CategoryID = src.CategoryID
AND tgt.SupplierID = src.SupplierID
AND tgt.Time = src.Time
WHERE tgt.ItemID IS NULL;