วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556

SQL Server : การใช้ Count(distinct field) นับจำนวนที่ไม่ซ๊ำกัน

การยืมหนังสือ

ตาราง TableA  เก็บรหัสผู้ยืม รหัสหนังสือ และเวลายืม
TableA(MemberID, BookNo ,DateBorrow)

ข้อมูล

MemberID  BookNo  DateBrrow                            
01         t-001 2013-01-01
01         t-002 2013-01-01
02         s-005 2013-01-01
02         k-004 2013-01-01
01         t-001 2013-01-02
01          k-008 2013-01-02
02         s-005    2013-01-02
                               ..............
                   
ต้องการผู้ที่ยืม 3 เล่มขึ้นไป

จะเห็นว่า  01 ยืมหนังสือ 4 รายการแต่ซีำ 1 เล่ม สรุปยืม 3 เล่ม
               02 ยืมหนังสือ 3 รายการแต่ซีำ 1 เล่ม สรุปยืม 2 เล่ม  

เขียนคำสั่งแบบนี้

Select  count(distinct BookNo) as BorrowCount, MemberID
From  TableA
Group by MemberID
Having count(distinct BookNo) >=3

ผลลัพท์

                     BorrowCount    MemberID
                           3                      01


ไม่มีความคิดเห็น:

แสดงความคิดเห็น