Vielen Dank im Voraus für das Lesen!T-SQL JOIN-Tabelle auf der Basis des nächsten Datums
Die Frage, die ich beantworten möchte, lautet: "Wie viel kosten Teile wirklich?" Wir fertigen durch die Bearbeitung von Rohmetall-Knüppeln bis hin zu Metallteilen. Endgültige Teile werden an einen Kunden verkauft und Altmetall aus dem Prozess wird an den Schrottplatz verkauft.
Aus Gründen der Geschäfts-/ERP-Konfiguration wird unser Schrottanbieter als Kunde aufgeführt, und wir liefern ihm Teile wie unsere anderen Kunden. Diese Dummy-Teile sind einfach für jede der Metalllegierungen, mit denen wir arbeiten, so dass es für jede verwendete Legierung einen Dummy-Schrottteil gibt. Die Schrottsendungen werden immer dann ausgeführt, wenn wir unsere Schrottbehälter füllen, so dass es kein definiertes Zeitintervall gibt.
Ich versuche, das Lieferdatum eines realen Teils an einen realen Kunden mit dem nächsten Schrottdatum der gleichen Legierung zu verbinden. Dann kann ich den Schrottwert pro Pfund, für das wir bezahlt wurden, erfassen und in unseren Umsatz für die Teile, die wir herstellen, einbeziehen. Wenn ich nach der Welt fragen kann, wäre es hilfreich zu wissen, wie man die Schrottsendung unmittelbar vor oder unmittelbar nach der Lieferung eines realen Teils ergreift - ich bin sicher, das Management wird ihre Meinung mehrere Male ändern, wenn sie darüber diskutieren wollen. vor 'oder' nach 'Nummer.
Ich habe andere Lösungen ausprobiert und kann sie nicht zur Arbeit bringen. Ich weine Onkel, ich kann es einfach nicht zur Arbeit bringen .... die Web-SQL-Schnittstelle, die unser ERP verwendet, behauptet, es sei T-SQL ... Danke, dass Sie so weit gelesen haben!
Was ich die Ausgabe aussehen möchte ist:
Customer Part Price Alloy Weight_Lost Scrap_Value Ship_Date
ABC Widget1 99.99 C182 63 2.45 10-01-2016
Hier ist die einfachste, das ich die Tabellen nach unten kochen kann:
SELECT
tbl_Regular_Sales.Customer
tbl_Regular_Sales.Part
tbl_Regular_Sales.Price
tbl_Regular_Sales.Alloy
tbl_Regular_Sales.Weight_Lost
tbl_Scrap_Sales.Price AS 'Scrap_Value'
tbl_Regular_Sales.Ship_Date
FROM
(SELECT P.Part
,P.Alloy
,P.Price
,S.Ship_Date
,S.Customer
FROM Part AS P
JOIN S AS S
ON S.Part_Key = P.Part_Key
WHERE Shipper.Customer = 'Scrap_Yard'
) AS tbl_Scrap_Sales
JOIN
(SELECT P.Part
,P.Weight_Lost
,P.Alloy
,P.Price
,S.Ship_Date
,S.Customer
FROM Part AS P
JOIN S AS S
ON S.Part_Key = P.Part_Key
WHERE Shipper.Customer <> 'Scrap_Yard') AS tbl_Regular_Sales
ON
tbl_Regular_Sales.Alloy = tbl_Scrap_Sales.Alloy
AND <Some kind of date JOIN to get the closest scrap shipment value>
Ich benutze dieses Muster sehr. Du willst etwas wie 'where date_col <= (wähle max (date_col) aus tbl wo ...)' –