Query Generate Running Key
ผมขอโพสแชร์ความรู้ในการ Generate Running Key ให้ทุกคนได้รู้ เผื่อจะนำไปใช้ประโยชน์ได้บ้าง บางครั้งการทำงานอาจจะโจทย์ว่าจะต้อง Gen Key เช่น หมายเลข PO ในรูปแบบ String เช่น ต้อง Gen Po Number ใน Format PO-YYMMNNNNNN PO - Fix YY - ปีสองตัวท้าย เช่น ปัจจุบัน 2019 เราต้องการแค่ 19 MM - เดือนปัจจุบัน 2 หลัก เช่น 09 NNNNNN - ตัวเลข 6 หลัก ตัวอย่าง PO-1909000001 PO-1909000002 PO-1909000003 PO-1909000004 PO-1909000005 ตัวเลข NNNNNN จะถูกนับใหม่ทุกๆ เดือน หมายความว่าใน 1 เดือน จะมีเลขที่เป็นไปได้คือ 000001 - 999999 ความยาวนี้ก็แล้วแต่การออกแบบของแต่ละระบบของแต่ละบริษัท ก็ว่ากันไป สมมติว่าใน Database มี Table ชื่อ PurchaseOrder มี Field PO เป็น varchar(20) CREATE_DATE เป็น DateTime Query เพื่อ Generate PO คือ (MS-SQL) select 'PO-' + RIGHT(CONVERT(char(4),YEAR(GETDATE())),2) + RIGHT('00'+CONVERT(varchar(2),MONTH(GETDATE())),2) + RIGHT('000000'+convert(varchar(6), ISNULL(MAX(CONVERT(integer, (RIGHT(PO, 6)))),0)+1),6) from PurchaseOrder where ...