ฉันมีสองตารางข้อมูลเรียบร้อยแล้ว PostalCodes
(กับคอลัมน์กับค่าจาก 00-00 จะ 99-999)และ Customers
(ซึ่งมีเคียงข้าทั้งหมดเป็นลูกค้าของข้อมูลเป็นรหัสไปรษณีย์สำหรับและหมายเลขของพนักงานซึ่งมันรับใช้ที่เป็นลูกค้า).
ดังนั้นพวกนี้สองคนฉันแค่จะมาร่วมทางรหัสไปรษณีย์สำหรับ:
SELECT DISTINCT
KP.postal,
K.IDemp
FROM
PostalCodes KP
LEFT JOIN
[Customers] K ON K.postal = KP.postal
และฉันกำลังจะนี้:
| 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 |
| ... | ... |
ดังนั้นอย่างที่คุณสามารถเห็นไม่ได้ส่งรหัสเป็นเคยอยู่ใน Customers
โต๊ะแต่สำหรับการเล็งของฉันฉันต้องส่งรหัสได้รับมอบหมายให้มีพนักงานเพื่อสร้างบางอย่างเช่น"กอบพื้นที่ของบริการ"ดังนั้นต้องทำอย่างนั้นฉันต้องการเพื่อเติมเต็มโพรโทคอล aimcomment ค่ากับสุดท้ายไม่ใช่โพรโทคอล aimcomment ค่าเพื่อเอาอะไรบางอย่างเหมือนนี้:
| postal | IDemp |
+--------+-------+
| 00-000 | NULL |
| 00-001 | 12PH |
| 00-002 | 12PH |
| 00-003 | 12PH |
| 00-004 | 10PH |
| 00-005 | 10PH |
| ... | ... |
ฉันพยายามจะใช้ LAG()
ฟังก์ชันแต่มันไม่ได้ทำงาน(หรืออย่างน้อยฉันไม่รู้วิธีใช้มันเหมาะสม)
LAG(K.IDemp) OVER (ORDER BY KP.postal)
ฉันเจองสามคำถามที่คล้ายกันอยู่แล้ว,แต่ไม่สามารถออกมาว่าต้องใช้พวกเขาได้คำตอบกันคดีของฉัน