J'ai deux tables PostalCodes
(avec une colonne avec des valeurs de 00-00 à 99-999) et Customers
(qui a, à côté de toutes les données du client, le code postal et l'ID de l'employé qui est de servir le client).
Donc, ces deux je suis tout simplement joindre via votre code postal:
SELECT DISTINCT
KP.postal,
K.IDemp
FROM
PostalCodes KP
LEFT JOIN
[Customers] K ON K.postal = KP.postal
et j'obtiens ceci:
| 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 |
| ... | ... |
Donc, comme vous pouvez le voir pas tous les codes postaux sont utilisés dans le Customers
le tableau, mais pour mon but, j'ai besoin de tous les codes postaux attribué à certains employés pour créé quelque chose comme "zone de service", de sorte à faire que je veux remplir les valeurs null avec le dernier pas de valeur null pour obtenir quelque chose comme ceci:
| postal | IDemp |
+--------+-------+
| 00-000 | NULL |
| 00-001 | 12PH |
| 00-002 | 12PH |
| 00-003 | 12PH |
| 00-004 | 10PH |
| 00-005 | 10PH |
| ... | ... |
J'ai essayé d'utiliser LAG()
la fonction, mais ça ne fonctionnait pas (ou du moins je ne sais pas comment l'utiliser correctement)
LAG(K.IDemp) OVER (ORDER BY KP.postal)
J'ai trouvé quelques questions similaires déjà, mais ne pouvait pas venir jusqu'comment utiliser leurs réponses à mon cas.