Sunday, May 27, 2018

Các câu lệnh SQL

1. Gặp một bài toán kiểm tra số dòng nhập vào có trùng không, ví dụ dưới đây là kiểm tra 2 dòng DONo và Seq trong table tblAFFSaleInvoice có trùng dòng không

SELECT TOP(1) COUNT(1) as Num FROM [tblAFFSaleInvoice] GROUP BY DONo,Seq HAVING COUNT(1) > 1

Giải thích:
Top1 () chỉ cần có 1 dòng trùng thì chúng ta báo lỗi.
COUNT(1): Đếm số dòng trùng nhau
GROUP BY:  Dòng các dòng trùng nhau
HAVING: Mệnh đề HAVING…được thêm vào SQL vì mệnh đề WHERE không áp dụng được đối với các hàm tập hợp (như SUM). Nếu không có HAVING, ta không thể nào kiểm tra được điều kiện với các hàm tập hợp.
2. Thêm số thứ tự ở dòng đầu tiên
Select
ID_Num = IDENTITY(int, 1, 1),
t1.DONo as STT,
t3.[Name] as TenKhachHang,
        from dbDOHdr T1 left join
dbMember T3 on t1.MemberCode = t3.Code
Thêm dòng này ID_Num = IDENTITY(int, 1, 1),  chúng ta sẽ có cột STT ở dòng đầu tiên

1 comment:

  1. Bổ sung dòng code Check dữ liệu trùng nhau cho bạn nào cần:
    SELECT code FROM Test GROUP BY Code HAVING COUNT(Code) > 1
    Trường hợp code không phải là khóa chính thì sử dụng câu lệnh trên, Nếu code là khóa phụ thì chúng ta cần kiểm tra?

    ReplyDelete