USE tempdb;
GO
IF OBJECT_ID('tempdb..#demo_data') IS NOT NULL
BEGIN
DROP TABLE #demo_data;
END;
CREATE TABLE #demo_data
(
row_id INT PRIMARY KEY,
product VARCHAR(30) NOT NULL,
customer VARCHAR(30) NOT NULL,
measure VARCHAR(30) NOT NULL,
value NUMERIC(6, 1) NOT NULL,
valid_from_day INT NOT NULL,
valid_to_day INT NOT NULL
);
INSERT INTO #demo_data (
row_id,
product,
customer,
measure,
value,
valid_from_day,
valid_to_day
)
SELECT 1 row_id, 'Widgets' product, 'Tesco' customer, 'Gross Sales Price' measure, 1 value, 20130101 valid_from_day, 20130401 valid_to_day UNION ALL
SELECT 2 row_id, 'Widgets' product, 'Tesco' customer, 'Gross Sales Price' measure, 1.5 value, 20130301 valid_from_day, 20131231 valid_to_day UNION ALL
SELECT 3 row_id, 'Widgets' product, 'Tesco' customer, 'Gross Sales Price' measure, 2 value, 20130401 valid_from_day, 20150101 valid_to_day UNION ALL
SELECT 4 row_id, 'Widgets' product, 'Tesco' customer, 'Distribution Cost' measure, 5 value, 20130101 valid_from_day, 20130401 valid_to_day UNION ALL
SELECT 5 row_id, 'Widgets' product, 'Tesco' customer, 'Distribution Cost' measure, 6 value, 20130301 valid_from_day, 20140401 valid_to_day UNION ALL
SELECT 6 row_id, 'Widgets' product, 'Tesco' customer, 'Distribution Cost' measure, 7 value, 20131231 valid_from_day, 20150101 valid_to_day UNION ALL
SELECT 7 row_id, 'Widgets' product, 'Asda' customer, 'Gross Sales Price' measure, 100 value, 00000000 valid_from_day, 99999999 valid_to_day UNION ALL
SELECT 8 row_id, 'Widgets' product, 'Asda' customer, 'Gross Sales Price' measure, 200 value, 20131231 valid_from_day, 20150101 valid_to_day UNION ALL
SELECT 9 row_id, 'Widgets' product, 'Asda' customer, 'Distribution Cost' measure, 2 value, 20130301 valid_from_day, 20131231 valid_to_day UNION ALL
SELECT 10 row_id, 'Widgets' product, 'Asda' customer, 'Distribution Cost' measure, 3 value, 20140401 valid_from_day, 20150101 valid_to_day;
SELECT
row_id,
product,
customer,
measure,
value,
valid_from_day,
valid_to_day
FROM
#demo_data
ORDER BY 1;
schreibt SQL zu identifizieren, welche Paare von Reihen haben identische Produkte, Kunden und Maßnahmen, mit überlappenden Datumsbereichenvon SQL-Abfrage
- z.B. Zeilen 1 und 2 haben das gleiche Produkt/Kunde/Maß und die überlappenden Datumsbereiche.
Ich bin verwirrt, wie Sie in Tabelle tun Vergleich .. Ich habe eine Idee über Joins verwenden, aber es wäre inneren sein beitreten oder einfach nur normal beitreten
Dies ist Oracle? Sieht aus wie SQL Server - können Sie klären/aktualisieren? – Nicarus
Sein SQL-Server sorry über falsches Tag – user5843174
Das erste, was Sie tun müssen, ist entweder speichern Sie diese Daten als Daten oder behandeln Sie das in Ihrer Auswahl. – scsimon