Hoàng Nhật Phương
Thành viên gắn bó
- Tham gia
- 5/11/15
- Bài viết
- 1,895
- Được thích
- 1,219
Dạ, vâng cảm ơn bạn đã chỉ thêm cho OT biết về cách dùng bảng tạm ạ.Nếu tài khoản của bạn của bạn chỉ được quyền Read thì việc tạo Table sẽ không được, nhưng Table tạm vẫn được, khi bạn không sử dụng SQL nữa Table đó sẽ tự xóa, tôi chỉnh lại code trên bằng việc sử dụng Table tạm
Việc sử dụng Subquery trong các môi trường khác không biết sao chứ trong SQL server bạn cứ sử dụng bình thường, trừ khi một sub được gọi nhiều hơn một lần thì nên lưu sub đó vào bảng tạm để tranh query nhiều lầnMã:SELECT TDK.[MA_HANG],TDK.[KHO_LUU_TRU],TDK.[LOTNO], TDK.[SO_LUONG] [TONDAUKY], 0 [NHAP],0 [XUAT], TDK.[SO_LUONG] [TON] into #A FROM [KHOHANG].[dbo].[KQ_KIEM_KE] TDK WHERE TDK.[NGAY_KIEM_KE] = (SELECT MAX([NGAY_KIEM_KE]) FROM [KHOHANG].[dbo].[KQ_KIEM_KE]) AND TDK.[KHO_LUU_TRU] LIKE N'%A%' UNION ALL SELECT XN.[MA_HANG],XN.[KHO_LUU_TRU],XN.[LOTNO], 0 AS [TONDAUKY], (case when XN.[KIEU] in (1,3) And XN.[KHO_LUU_TRU] LIKE N'%A%' then XN.[SO_LUONG] else 0 end) [NHAP], (case when XN.[KIEU] =2 And XN.[KHO_LUU_TRU] LIKE N'%A%'then XN.[SO_LUONG] else 0 end) [XUAT], (case when XN.[KIEU] in (1,3) And XN.[KHO_LUU_TRU] LIKE N'%A%' then XN.[SO_LUONG] else 0 end)-(case when XN.[KIEU] =2 And XN.[KHO_LUU_TRU] LIKE N'%A%'then XN.[SO_LUONG] else 0 end) [TON] FROM [KHOHANG].[dbo].[NHAP_XUAT] XN WHERE LEFT(XN.[NGAY_THANG],6) >= (SELECT MAX([NGAY_KIEM_KE]) FROM [KHOHANG].[dbo].[KQ_KIEM_KE] SELECT NXT.[MA_HANG],NXT.[KHO_LUU_TRU],NXT.[LOTNO], SUM(TONDAUKY) [TONDAUKY],SUM(NHAP) [NHAP],SUM(XUAT) [XUAT],SUM(TON) [TON] FROM #A group by NXT.[MA_HANG],[NXT.KHO_LUU_TRU],NXT.[LOTNO]
OT cứ tưởng tạo cái gì đó thì dùng lệnh create... thì mới đáng lo, còn lệnh trên thì selec có lẽ chắc là không vấn đề gì ạ.