/ / Warum verschiebt SQL Job Scheduling nicht alle Datensätze irgendwann? - SQL, SQL-Server, Datenbank, Job-Planung

Warum verschiebt SQL Job Scheduling nicht alle Datensätze irgendwann? - SQL, SQL-Server, Datenbank, Job-Planung

Ich stelle den Jobplan täglich ein. Wenn ich die Datensätze am nächsten Tag überprüfe, wurden die Datensätze irgendwann nicht mehr komplett verschoben. Ich weiß nicht warum.

Hier ist meine Abfrage

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)

Gesamtzahl der Datensätze auf [JC_ItemDailySalesParent] = 21027 und Gesamtdatensätze auf [F_ItemDailySalesParent] = 18741 am 06-März-2017

Wenn Sie denken, ich könnte eine Spalte oder etwas anderes verpasst haben! .. Dann werde ich die gleiche Abfrage ausführen, indem ich die Bedingung zu ändern where time=convert(Date,getdate()). Dann wird der komplette Datensatz ausgeführt, ohne zu fehlen.

Hinweis: Beide Tabellen sind ein Job-Zeitplan. [JC_ItemDailySalesParent] Tisch läuft um 2 Uhr morgens. F_ItemDailySalesParent läuft am frühen Morgen 6 Uhr.

Frag mich nicht, warum zwei Tische mit der gleichen Platte. Das ist für andere Zwecke.

Vielen Dank,

Antworten:

0 für die Antwort № 1

Versuchen Sie immer, eine eindeutige Kennung in der Tabelle zu haben. Unter der Annahme, dass die Kombination aus ItemID, StoreID, ItemLookupCode, DepartmentID, CategoryID, SupplierID und Time eindeutig ist:

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;