แสดงบทความที่มีป้ายกำกับ SQL Server แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ SQL Server แสดงบทความทั้งหมด

วันอังคารที่ 4 มีนาคม พ.ศ. 2557

ตัวอย่างการ QUERY SELECT 2 TABLE โดยเลือกเฉพาะข้อมูลที่ต่างกันขึ้นมา

SELECT     CTS_MST_ID, CTS_DTL_ID, CTS_DTL_ORDER, PRODUCT_ID, GRADE_ID, GLUE, CTS_LENGTH, CTS_WIDTH, CTS_THICK, QTY, CTS_DATETIMES, CTS_DATETIMEE,
                      SANDING_DATE, SANDING_TIME, SANDING_DATEE, SANDING_TIMEE, SHIFT_ID, STATION_ID, STAFF_NAME, QC_NAME, SHIFT_SUP_NAME, REMARK, CREATE_BY,
                      CREATE_DATETIME, REVISE_BY, REVISE_DATETIME, UNIT_ID
FROM         CUTTOSIZE_DTL_TEMP
WHERE     (NOT EXISTS
                          (SELECT     CTS_MST_ID, CTS_DTL_ID, CTS_DTL_ORDER, PRODUCT_ID, GRADE_ID, GLUE, CTS_LENGTH, CTS_WIDTH, CTS_THICK, QTY, CTS_DATETIMES,
                                                   CTS_DATETIMEE, SANDING_DATE, SANDING_TIME, SANDING_DATEE, SANDING_TIMEE, SHIFT_ID, STATION_ID, STAFF_NAME, QC_NAME,
                                                   SHIFT_SUP_NAME, REMARK, CREATE_BY, CREATE_DATETIME, REVISE_BY, REVISE_DATETIME, UNIT_ID
                            FROM          CUTTOSIZE_DTL
                            WHERE      (CTS_MST_ID = CUTTOSIZE_DTL_TEMP.CTS_MST_ID) AND (CTS_DTL_ID = CUTTOSIZE_DTL_TEMP.CTS_DTL_ID)))


SELECT     ROW_NUMBER() OVER(ORDER BY INVENTORY_IN.ORDER_NO DESC) AS ORDER_NO,INVENTORY_IN.INVENT_IN_ID, INVENTORY_IN.INVENT_IN_DOCNO, CONVERT(VARCHAR, INVENTORY_IN.INVENT_IN_DOCDATE, 103)                      
                      AS INVENT_IN_DOCDATE, INVENTORY_IN.PACK_ID, INVENTORY_IN.PRODUCT_ID, INVENTORY_IN.GRADE_ID,                              
                      INVENTORY_IN.INVENT_QTY, INVENTORY_IN.UNIT_ID, INVENTORY_IN.INVENT_ID, INVENTORY_IN.INVENT_RECIEVER,                
                      INVENTORY_IN.CREATE_DATETIME, INVENTORY_IN.CREATE_BY, INVENTORY_IN.REVISE_DATETIME, INVENTORY_IN.REVISE_BY,        
                      INVENTORY_IN.REMARK, GRADE.GRADE_NAMET, EMPLOYEE_PROFILE.EMP_NAME_THAI + ' ' + EMPLOYEE_PROFILE.EMP_SURNAME_THAI AS FULLNAME,      
                      INVENTORY_IN.INVENT_RECIEVE_DATE, INVENTORY_IN.BARCODE, INVENTORY_IN.LOTNO, PRODUCT_PROFILE.PRODUCT_CODE,                
                      PRODUCT_PROFILE.PRODUCT_NAMET, PRODUCT_UNIT.UNIT_NAMET, INVENTORY.INVENT_DESCRIPTION, INVENT_BAL.QTY,                                  
                      CASE INVENT_BAL.QTY - INVENTORY_IN.INVENT_QTY WHEN 0 THEN 'ACCEPT' END AS PERMISSION                                              
FROM         GRADE RIGHT OUTER JOIN                                                                                                                          
                      EMPLOYEE_PROFILE RIGHT OUTER JOIN                                                                                                      
                      PRODUCT_PROFILE RIGHT OUTER JOIN                                                                                                        
                      INVENTORY_IN LEFT OUTER JOIN                                                                                                            
                      INVENT_BAL ON INVENTORY_IN.INVENT_IN_ID = INVENT_BAL.IN_ID ON                                                                      
                      PRODUCT_PROFILE.PRODUCT_ID = INVENTORY_IN.PRODUCT_ID LEFT OUTER JOIN                                                              
                      INVENTORY ON INVENTORY_IN.INVENT_ID = INVENTORY.INVENT_ID ON EMPLOYEE_PROFILE.ID = INVENTORY_IN.INVENT_RECIEVER ON            
                      GRADE.GRADE_ID = INVENTORY_IN.GRADE_ID LEFT OUTER JOIN                                                                            
                      PRODUCT_UNIT ON PRODUCT_PROFILE.UNIT_ID = PRODUCT_UNIT.UNIT_ID                                                                          
WHERE     INVENTORY_IN.INVENT_IN_ID NOT IN (
SELECT     INVENTORY_IN_TEMP.INVENT_IN_ID                                              
FROM         GRADE RIGHT OUTER JOIN                                                                                                                          
                      EMPLOYEE_PROFILE RIGHT OUTER JOIN                                                                                                      
                      PRODUCT_PROFILE RIGHT OUTER JOIN                                                                                                        
                      INVENTORY_IN_TEMP LEFT OUTER JOIN                                                                                                            
                      INVENT_BAL ON INVENTORY_IN_TEMP.INVENT_IN_ID = INVENT_BAL.IN_ID ON                                                                      
                      PRODUCT_PROFILE.PRODUCT_ID = INVENTORY_IN_TEMP.PRODUCT_ID LEFT OUTER JOIN                                                              
                      INVENTORY ON INVENTORY_IN_TEMP.INVENT_ID = INVENTORY.INVENT_ID ON EMPLOYEE_PROFILE.ID = INVENTORY_IN_TEMP.INVENT_RECIEVER ON            
                      GRADE.GRADE_ID = INVENTORY_IN_TEMP.GRADE_ID LEFT OUTER JOIN                                                                            
                      PRODUCT_UNIT ON PRODUCT_PROFILE.UNIT_ID = PRODUCT_UNIT.UNIT_ID )                                                    
                                                   

ขออธิบายสั้นๆนะครับ ให้นำ Table ที่เป็นข้อมูลหลักไว้เป็น Table ตั้งต้นนะครับ จากนั้น คือ WHERE ด้วย ตารางที่ข้อมูลหายไป ไม่งั้นจะไม่เจอข้อมูลนะครับ

วันอังคารที่ 8 ตุลาคม พ.ศ. 2556

เขียน Function เช็คลำดับใน SQL Server ในกรณีตารางว่างให้เริ่มลำดับตามที่กำหนด [Delphi][SQL Server]

คำสั่ง SQL สำหรับให้เริ่มต้นลำดับตามจำนวนที่ต้องการ

  private
    { Private declarations }
    { ประกาศตัวแปร }
    function countDocId:Integer;
  public
    { Public declarations }

    { เขียน Fuction ดังนี้ }
function TSaleOrder_F.countDocId: Integer;
begin
  with Dm_F do begin
    with qryMDF do begin
      Close;
      SQL.Clear;
      SQL.Text := 'select ISNULL(MAX(ID)+1, 1000 ) as NewID from [MDF].[dbo].[SELL_ORDER_MST]';
      ExecSQL ;
      Open;
      Result := StrToInt(Fields[0].AsString) ;
    end;
  end;
end;
   { เขียน Fuction ดังนี้ }

อธิบาย Query : ทำการเช็คในตาราง [MDF].[dbo].[SELL_ORDER_MST] ที่คอลัม ID ถ้าว่างให้เริ่มที่ 1000 ถ้าไม่ว่างจะใช้คำสั่ง MAX() และ + ข้อมูลเพิ่มไปทีละ 1

วันพุธที่ 28 สิงหาคม พ.ศ. 2556

วิธีการ Daily Backup Microsoft SQL Server 2008 Express [SQL Server]

          วิธีการ Backup Database ง่ายๆ เมื่อใช้ Microsoft SQL Server 2008 Express เนื่องจากตัว Express นั้นไม่มีระบบในการจัดการ Backup ประจำวันมาให้ลองใช้วิธีนี้ดูครับ


วันอาทิตย์ที่ 25 สิงหาคม พ.ศ. 2556

แก้ปัญหาเปลี่ยน data type หน้า design ไม่ได้ SQL Server 2008 [SQL Server]

1. เปิด Microsoft SQL Server Management Studio 2008
2. คลิก Tools
3. คลิก Options
4. คลิก Designers
5. เอาเช็คออก prevent saving changes that require table re-creation
6. คลิก Ok
7. จากนั้นลองแก้ไข


ลง SQL Server 2008 Express ไม่มี SQL Server management studio [SQL Server]

ให้ดาวโหลดตัวนี้มาติดตั้ง Microsoft® SQL Server® 2008 Management Studio Express


แต่สำหรับคนที่ต้องการลงตัว SQL Server 2008 Expres แล้วมี SQL Server management studio เลยนั้นให้โหลด Microsoft® SQL Server® 2008 Express with Tools มาลงนะครับ