Mám dvě tabulky PostalCodes
(s jedním sloupcem s hodnotami z 00-00 na 99-999) a Customers
(který má, vedle všechny údaje zákazníka, poštovní směrovací číslo a ID zaměstnance, který je slouží zákazníkovi).
Takže tyto dva jsem jednoduše připojil přes poštovní směrovací číslo:
SELECT DISTINCT
KP.postal,
K.IDemp
FROM
PostalCodes KP
LEFT JOIN
[Customers] K ON K.postal = KP.postal
a dostanu toto:
| 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 |
| ... | ... |
Takže jak můžete vidět, ne všechny poštovní kódy jsou používány v Customers
tabulka, ale pro můj cíl potřebuju všechny poštovní kódy přiřazeny k některé zaměstnance, aby vytvořil něco jako "oblasti služeb", tak k tomu, že chci naplnit hodnoty null s poslední nenulové hodnoty, aby si něco takového:
| postal | IDemp |
+--------+-------+
| 00-000 | NULL |
| 00-001 | 12PH |
| 00-002 | 12PH |
| 00-003 | 12PH |
| 00-004 | 10PH |
| 00-005 | 10PH |
| ... | ... |
Snažil jsem se použít LAG()
funkce, ale to nefunguje (nebo alespoň nevím, jak jej správně používat)
LAG(K.IDemp) OVER (ORDER BY KP.postal)
Našla jsem pár podobných dotazů, ale nemohl přijít, jak používat své odpovědi na můj případ.