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

Friday, April 13, 2018

Cách chưc danh quản lý trong tiếng anh

Quản lý cấp caoDirectors: Giám đốc
Executives: Người quản trị 
Senior managers: Quản lý cấp cao
Quản lý cấp trungJunior/middle managers: Quản lý trung gian
Line managers: Quản lý dây chuyền
Team leaders: Trưởng nhóm
Supervisors: Giám sát
Direct report: Cấp dưới trực tiếp mà bạn phải chịu trách nhiệm quản lý.
Immediate boss/supervisor: Cấp trên trực tiếp mà bạn chịu trách nhiệm báo cáo công việc.

Monday, February 5, 2018

Cài đặt phầm mềm virus Microsoft Security Essentials miễn phí cho windows server

Cài đặt và gỡ bỏ phần mềm Microsoft Security Essentials trong server  2012 R2
1. Cài đặt 
Nhà nghèo không có tiền sài giải pháp, lay hoay mãi tìm được  cách cài Microsoft Security Essentials vào server  2012 R2
Step1:  download suorce tại trang chủ MS.

Step2: các bạn click chuột phải vào suorce mới downlaod về chọn properties à sau đó chọn Compatibility  chọn Run this program in compatibility à windows 7

Step3:  Làm như hướng dẫn bên dưới.

Giải thích sơ các bạn trỏ tới thư mục chưa file download. Sau đó gõ lệnh “mseinstall /disableoslimit” để tiến hành cài đặt bình thường.

2. Muốn gỡ cài đặt.
Đầu tiên  vào thư mục C:\Program Files\Microsoft Security Client

chọn cuột phải vào  setup.exe qua tab  compabilible bên dưới chọn windown7

sau đó vào CMD gõ lệnh để gở phần mềm.
cd \
cd \Program Files\Microsoft Security Client
Setup.exe /disableoslimit /u
Tiến hành gỡ cài đặt bình thường.

Chúc các bạn thành công!.


Thursday, December 7, 2017

SQL basic

1. Dồn nhiều dòng thành 1 dòng trong sql
DECLARE @NAMES NVARCHAR(4000) 
SELECT @NAMES = COALESCE(@NAMES + ', ', '') + CustomerName 
FROM dbo.Customer
SELECT @NAMES

Monday, June 5, 2017

Sử dụng các hàm để tìm số lớn thứ n với n là biến truyền vào trong SQL


Nếu tìm số lớn nhất của 1 cột  trong SQL thì đơn giản chúng ta chỉ cần truy vấn cơ bản.
select max(QuotaAmt,) From erp.SRepQDtl
thì các bạn có thể tìm được dòng lớn nhất của một dòng,
Nhưng nếu tìm số lớn thứ 2 thì chúng ta phải (độ khó bắt đầu tăng lên):
select top(1)*
from erp.SRepQDtl where QuotaAmt < (select max(QuotaAmt) from erp.SRepQDtl)
Order by QuotaAmt DESC

Tất nhiên có nhiều cách khác để tìm số lớn thứ 2(các bạn tự viết nhé), nhưng nếu tìm số lớn thứ n với n là biến truyền vào thì rất khó khăn với cách viết như vậy.
Minh xin giới thiệu 3 hàm để giúp giải quyết vấn đề này.
HÀM DENSE_RANK
Cấu trúc:
DENSE_RANK ( ) OVER ( [ <partition_by_clause> ] < order_by_clause > )  
 
-- xếp hạng và tăng tịnh tiến
ví dụ:
select company,SalesRepCode,FiscalYear,FiscalPeriod,QuotaAmt, DENSE_RANK() Over (Order by QuotaAmt DESC) as DenseRank
from erp.SRepQDtl
where FiscalPeriod =5

HÀM ROW(). 
Cấu trúc
--Hàm này sẽ đánh dấu số Row các dòng, kiểu Index, và nó tăng tịnh tiến kể cả số dòng đó bằng nhau
Ví dụ:
Select Company,SalesRepCode,FiscalYear,FiscalPeriod,QuotaAmt, ROW_NUMBER() Over (Order By QuotaAmt DESC)as RowNum
From erp.SRepQDtl
Where FiscalPeriod=5

Hàm RANK()
-- sử dụng hàm Rank để xếp hạng. hang này sẽ tự so sánh kết quả,không tăng tịnh tiến
Ví Dụ:
Select Company,SalesRepCode,FiscalYear,FiscalPeriod,QuotaAmt, RANK() Over (Order By QuotaAmt DESC)as XepHang
From erp.SRepQDtl
Where FiscalPeriod=5