Announcement

Collapse

ยินดีต้อนรับสู่ Excel Expert Training Forum

กฏกติกาของฟอรัม: แจ้งชื่อและนามสกุลจริงในการสมัครสมาชิก - ตั้งชื่อกระทู้ให้ตรงกับปัญหาที่ถาม - เขียนอธิบายคำถามทั้งในตัวกระทู้และในแฟ้มแนบ - ห้ามใช้คำว่า อ่ะ คับ คำผวน - ตั้งชื่อแฟ้มเป็นภาษาอังกฤษให้สื่อถึงปัญหา - อย่าระบุชื่อให้คนใดเป็นผู้ตอบ - งดให้ความร่วมมือหรือช่วยกระทู้ที่ละเมิดกฏของฟอรัม
See more
See less

ช่วยแนะนำสูตร ในการ คิวรี่ข้อมูลจาก sql เรื่องการนับคนที่ทำงานต่อเนื่องด้วยครับ

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ช่วยแนะนำสูตร ในการ คิวรี่ข้อมูลจาก sql เรื่องการนับคนที่ทำงานต่อเนื่องด้วยครับ

    ผมมีข้อมูลจาก SQL server ที่มีการลงเวลาในแต่ละวันของพนักงาน เช่น เข้างานกี่โมง ออกกี่โมง ทำงานวันนึงกี่นาที สายกี่นาที
    ทีนี้ ทาง HR ต้องการข้อมูลสรุปว่า
    ในรอบ การจ่ายเงิน 1 รอบ (15วัน) มีกี่คนที่มาทำงานวันอาทิตบ้าง และวันไหน (กรณีที่รอบ 15 วันนั้น จะมีวันอาทิต ประมาณ 2 วัน ) และต้องการเช็คเพิ่มเติมว่า วันอาทิตที่มาทำงานนั้น ได้ทำงาน จ - ส โดยไม่หยุดหรือไม่ หากไม่หยุดเลย จะได้ 2 แรง ในวันอาทิต หากหยุดอย่างน้อย 1 วัน จะได้ 1 แรง ในวันอาทิตครับ

    ผมพยายามจะใช้วิธี คิวรี่ วันอาทิตออกมาได้แล้ว แต่ไม่รู้ว่าจะทำยังไงถึงจะแสดงวันที่ ที่เป็นวันอาทิตที่พนง.มาทำงาน และ 6 วันที่ผ่านมา ทำงานครบหรือป่าว

    รบกวนช่วยแนะนำแนวทางด้วยครับ

    นี่คือสูตรที่พยายามทำอยู่ครับ

    Code:
    Dim cn As ADODB.Connection
        Set cn = New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim strConn As String
        Dim sqlStr As String
        Sheet1.Range("a4:C300").ClearContents
        strConn = "Provider=SQLOLEDB.1;Password=xxxxxx;Persist Security Info=True;User ID=xxx;Initial Catalog=xxx;Data Source=xxxxxxx"
        cn.Open strConn
        Dim Selected As String
        Dim Table As String
        Dim Where As String
        Dim Group As String
        Dim D1 As String
        Dim M1 As String
        Dim Y1 As String
        Dim S1 As String
        Dim D2 As String
        Dim M2 As String
        Dim Y2 As String
        Dim S2 As String
        D1 = Day(Range("D2"))
        M1 = Month(Range("D2"))
        Y1 = Year(Range("D2"))
        S1 = Y1 + "-" + M1 + "-" + D1
        D2 = Day(Range("E2"))
        M2 = Month(Range("E2"))
        Y2 = Year(Range("E2"))
        S2 = Y2 + "-" + M2 + "-" + D2
        
        Selected = "e.Employee3,BRANCH,COUNT(case when typeday= 'offday' then 1 end) as 'Offday'" _
      + " FROM TIMEJOURNALDETAIL" _
      + " left join EMPLOYEE e on e.Code = TIMEJOURNALDETAIL.Employee" _
      + " where TIMEJOURNALDETAIL.Dt between '" + S1 + "' and '" + S2 + "'  and e.employeetype ='daily' and e.TRNFlag ='N' and e.Sectionn ='social' and OTCode <> 'อัตราพ่อบ้านแม่บ้าน'" _
      + " group by e.Employee3,BRANCH,NormalWorkCal" _
      + " having COUNT(case when typeday= 'offday' then 1 end) >0" _
      + " order by e.Branch"
    
        
        sqlStr = "select " + Selected
        rs.Open sqlStr, strConn
    
            
        Sheet1.Range("A4").CopyFromRecordset rs
            
            
            
            
        rs.Close
        cn.Close
    Last edited by Tomkungz; 15 May 2018, 09:45.
Working...
X