Ho due tabelle PostalCodes
(con una colonna con i valori 00-00 per 99-999) e Customers
(che ha, oltre a tutti i dati del cliente, il codice postale e l'ID del dipendente che è al servizio del cliente).
Quindi questi due sono semplicemente entrare in via codice postale:
SELECT DISTINCT
KP.postal,
K.IDemp
FROM
PostalCodes KP
LEFT JOIN
[Customers] K ON K.postal = KP.postal
e sto ottenendo questo:
| 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 |
| ... | ... |
Quindi, come potete vedere non tutti i codici di avviamento postale sono utilizzati in Customers
tabella, ma per il mio scopo ho bisogno di tutti i codici di avviamento postale assegnati ad alcuni dipendenti per creare qualcosa come "area di servizio", in modo da fare che voglio riempire di valori null con ultimo valore null non per ottenere qualcosa di simile a questo:
| postal | IDemp |
+--------+-------+
| 00-000 | NULL |
| 00-001 | 12PH |
| 00-002 | 12PH |
| 00-003 | 12PH |
| 00-004 | 10PH |
| 00-005 | 10PH |
| ... | ... |
Stavo cercando di utilizzare LAG()
la funzione, ma non funzionava (o almeno io non so come usarlo correttamente)
LAG(K.IDemp) OVER (ORDER BY KP.postal)
Ho trovato alcune domande simili già, ma non poteva venire su come utilizzare le loro risposte al mio caso.