Einfaches Beispiel Daten für Klarheit mit:nächste Werte finden SQL mit Datum diff
PERSON_PINCODE
PERSON START_DATE END_DATE PINCODE
10023541700000 01-01-12 31-03-12 6059
10023541700000 01-01-12 31-03-12 6060
PINCODE_VALUE
PINCODE START_DATE END_DATE VAR VALUE
6059 01-04-11 30-06-11 3889 28.4
6059 01-07-11 30-09-11 3889 28.2
6059 01-10-11 31-12-11 3890 31.4
6060 01-04-11 30-06-11 3889 29.4
6060 01-07-11 30-09-11 3889 41.2
6060 01-10-11 31-12-11 3890 43.4
Output should be:
PERSON_PINCODE_VALUE
PERSON START_DATE END_DATE PINCODE VAR VALUE DIFF
10023541700000 01-01-12 31-03-12 6059 3889 28.2 90 days
10023541700000 01-01-12 31-03-12 6059 3890 31.4 1 day
10023541700000 01-01-12 31-03-12 6060 3890 41.2 90 days
10023541700000 01-01-12 31-03-12 6060 3890 43.4 1 day
Um PERSON_PINCODE_VALUE zu bekommen,
wie folgt vor:
1) Take each row of PERSON_PINCODE and find PINCODE, START_DATE, END_DATE
2) For each PINCODE from step 1, find START_DATE, END_DATE, VAR, VALUE from PINCODE_VALUE
3) Associate all values from step 1 and step 2, on the basis of PINCODE, START_DATE and END_DATE
4) If in step 3, we do NOT get exact PINCODE, START_DATE and END_DATE for each VAR from step 2, find nearest prior START_DATE for remaining VAR
5) Associate values from step 4 with DIFF as PERSON_PINCODE.START_DATE - PINCODE_VALUE.END_DATE
Bitte teilen Sie das Skript Sie versucht –
Der Einfachheit halber können Sie nummerieren alle Personen 1, 2, 3, 4, 5, etc. Auch für Person '10025868900000' wie Hast du dieses Start- und Enddatum und warum hast du doppelte Zeilen mit verschiedenen 'Pincodes'? – MT0
Auch für die Person '10023541700000' wenn Sie 'DATUM' 2012-01-01 '- DATUM' 2011-07-01'' haben, erhalten Sie 184 Tage - wie erhalten Sie einen Unterschied von 90 Tagen? – MT0