Am doua tabele PostalCodes
(cu o coloană cu valori de la 00-00 la 99-999) și Customers
(care are, pe lângă toate datele clienților, un cod poștal și ID-ul de angajat care este servirea clientului).
Deci, aceste două sunt pur și simplu prin aderarea cod postal:
SELECT DISTINCT
KP.postal,
K.IDemp
FROM
PostalCodes KP
LEFT JOIN
[Customers] K ON K.postal = KP.postal
și voi face acest lucru:
| postal | IDemp |
+--------+-------+
| 00-000 | NULL |
| 00-001 | NULL |
| 00-001 | 12PH |
| 00-002 | NULL |
| 00-003 | NULL |
| 00-004 | NULL |
| 00-004 | 10PH |
| 00-005 | NULL |
| ... | ... |
Deci, după cum puteți vedea, nu toate codurile poștale sunt utilizate în Customers
masă, dar pentru scopul meu am nevoie de toate codurile poștale atribuit un angajat a creat ceva de genul "zona de serviciu", așa că vreau să umplu valorile nule cu ultima nu valoarea null pentru a obține ceva de genul asta:
| postal | IDemp |
+--------+-------+
| 00-000 | NULL |
| 00-001 | 12PH |
| 00-002 | 12PH |
| 00-003 | 12PH |
| 00-004 | 10PH |
| 00-005 | 10PH |
| ... | ... |
Am fost încercarea de a utiliza LAG()
funcție, dar nu a fost de lucru (sau cel puțin eu nu știu cum l folosească în mod corespunzător)
LAG(K.IDemp) OVER (ORDER BY KP.postal)
Am găsit câteva întrebări similare deja, dar nu a putut veni cum să folosiți răspunsurile lor la cazul meu.