Posts

Showing posts from September, 2019

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 ...