Cho hỏi về Union Query

  • Thread starter Nina
  • Ngày gửi
Nina

Nina

Trung cấp
20/12/06
68
0
6
Đâu đó trên WKT.
Tạo giùm em Query Union

Em có 1 bảng tồn kho đầu kì là :
Ton vat tu : Mavt,tenvt,dvt,ton,dongia,giatri
và 1 Query Nhap xuat : ngayctu,soctu,lido(nhập hay xuất),khach,diengiai,mavt,tenvt,dvt,sln,slx,giatri.
Có ai tạo giùm em Query Union để tính tồn kho với ? Em cảm ơn nhiều!
 
Khóa học Quản trị dòng tiền
hai2hai

hai2hai

VNUNI Makes a difference
29/4/04
2,030
125
63
52
Hà nội
vnuni.net
Để có được báo cáo NXT về lượng và tiền với dạng như sau:

Kho hàng
Mã HH, Tên HH, Dư ĐK lượng, Dư ĐK giá trị, PST (Lượng), PST (Giá trị), PSG (Lượng), PSG (Giá trị), Dư cuối kỳ (Lượng), Dư cuối kỳ (Giá trị)

thì em phải làm sao để danh sách các trường trong câu SELECT của mỗi phần phải có đủ những thành phần trên. Nếu thành phần nào thiếu, em chỉ việc cho số 0 vào đó để giả lập trường đó.

Ví dụ:

(
'// Đầu kỳ
SELECT StoreID, ProductID, OpeningQty, OpeningAmt, 0 AS QtyInc, 0 AS AmtInc, 0 AS QtyDec, 0 AS AmtDec FROM [Bảng dư đầu kỳ]

UNION ALL '// (INC = Phát sinh tăng nhé)
'// Các giao dịch làm phát sinh tăng (chú ý: Ko chỉ có mỗi nhập hàng đâu, còn có chuyển kho (kho đến), hàng khách trả lại nhập vào kho, điều chỉnh làm tăng kho, lắp giáp)
'// Chỉ lấy vào trường QtyInc và AmtInc, còn các trường khác là ảo hết (0 AS ...)
...
UNION ALL '// (DEC = Phát sinh giảm nhé)
'// Các giao dịch làm phát sinh giảm (Chú ý: không chỉ có mỗi xuất hàng đâu, còn có nhiều giao dịch khác nữa...)
'// Chỉ lấy vào trường QtyDec và AmtDec, còn các trường khác là ảo hết (0 AS ...)

...

)

Em Select từ cái SQL nói trên như sau:

SELECT StoreID, ProductID, SUM(OpeningQty) AS OpeningQty, v.v..., (SUM(OpeningQty) + SUM(QtyInc) - SUM(QtyDec)) AS EndQty, v.v...

FROM (đoạn SQL ở trên)
GROUP BY StoreID, ProductID

(Chú ý: Cần check Null khi thực hiện SUM, anh ko viết vào vì dài quá)

Để có thể tính NXT theo khoảng thời gian nào đó, em chỉ cần thêm điều kiện WHERE vào câu SQL theo ý thích.

Như vậy, chỉ cần 1 câu SQL, em đã có thể có 1 báo cáo về NXT rồi. Nếu viết tốt thì báo cáo được thực hiện với tốc độ rất cao.

Hope that helps!
 
A

anvian

Guest
10/1/09
1
0
1
39
Ho Chi Minh
Xin cho hỏi:
Làm thế nào để chỉnh sửa trên kết quả Union Query từ nhiều table?
Mình học Access căn bản qua sách, không đầy đủ, cũng không trình bày phần này...
ai biết thì giúp mình nhé, thanks.
 
D

Duong dinh Ba

Guest
9/2/09
4
0
0
69
ngọc hồi
union query la query hội no bao gồm các dòng lệnh minh muốn số la standa ma củng không biêt vào chổ nào cả giống như bạn thôi
 
H

hieu71219841

Guest
22/11/08
12
0
0
41
tiengiang
Union Query

Các bạn ơi giúp mình với !
Các bạn vào file mình post và nhìn các query thành phần trước và sau đó vào query tổng hợp , tức query Union bạn sẽ thấy trật tự các mục của query đất , cây cối , công trình , phụ và nhà cửa không thay đổi , chỉ có query Nhà là bị đảo lộn, mặc dù query Nhà gốc đã được sắp xếp theo trường Autonumber ! (mình nói trước là sử dụng phương án ORDER BY [NHA].[SỐ TỰ ĐỘNG] là không được !

Mình nghĩ phần Union query chắc ít bạn biết sử dụng, bạn nào nằm được xin chỉ giúp để các bạn trên diễn đàn tăng thêm kiến thức nha !

Cám ơn các bạn rất nhiều !
http://www.giaiphapexcel.com/forum/showthread.php?p=142111#post142111
 
D

dzung

Guest
18/2/05
18
0
0
49
hcm
Mình có xem qua cái file của bạn rồi và mình có ý kiến sau:

Thứ 1: cách thiết kế database của bạn ko chuẩn và có vấn đề...
Thứ 2: Union Query sử dụng để tập hợp data, như xem cái query của bạn mình thấy giống cái báo cáo quá, sao bạn ko sử dụng report để làm.

Tóm lại mình nghĩ cái CT của bạn còn nhiều vấn đề.....vì bạn chỉ copy 1 phần nên mình ko hiều hết để bàn tiếp.

nếu sử dụng report bạn sửa query lại như sau:

SELECT [Loại đất],[Đơn vị tính],[Giá đất],[Hệ số tính],[Diện tích],[Thành tiền], 'nhom 1' as g
FROM [AP GIA DAT Query]

UNION ALL SELECT [1],[2],[3],[4],[5],[6] , "nhom 2" as g
FROM [2];

UNION ALL SELECT [HẠNG MỤC],[ĐƠN VỊ TÍNH],[ĐƠN GIÁ],[Hệ số],[DIỆN TÍCH],[THÀNH TIỀN] , "nhom 3" as g
FROM [NHA];


UNION ALL SELECT [1],[2],[3],[4],[5],[6] , "nhom 5" as g
FROM [3];

UNION ALL SELECT [HẠNG MỤC],[ĐƠN VỊ TÍNH],[ĐƠN GIÁ],[Hệ số],[SỐ LƯỢNG],[THÀNH TIỀN], "nhom 6" as g
FROM [CONG TRINH PHU];

UNION ALL SELECT [1],[2],[3],[4],[5],[6] ,"nhom 7" as g
FROM [4];

UNION ALL SELECT [LOẠI],[ĐVT],[ĐƠN GIÁ],[Hệ số],[SỐ LƯỢNG],[THÀNH TIỀN] , as "nhom 8" as g
FROM [CAY COI];


UNION ALL SELECT [1],[2],[3],[4],[5],[6],"nhom 9" as g
FROM [6];

UNION ALL SELECT [HẠNG MỤC],[ĐƠN VỊ TÍNH],[ĐƠN GIÁ],[Hệ số],[SỐ LƯỢNG],[THÀNH TIỀN],"nhom 10" as g
FROM [CHINH SACH HO TRO];

Tạo 1 cái report sau đó group by theo nhóm (g) và Sum theo từng nhóm là OK





Các bạn ơi giúp mình với !
Các bạn vào file mình post và nhìn các query thành phần trước và sau đó vào query tổng hợp , tức query Union bạn sẽ thấy trật tự các mục của query đất , cây cối , công trình , phụ và nhà cửa không thay đổi , chỉ có query Nhà là bị đảo lộn, mặc dù query Nhà gốc đã được sắp xếp theo trường Autonumber ! (mình nói trước là sử dụng phương án ORDER BY [NHA].[SỐ TỰ ĐỘNG] là không được !

Mình nghĩ phần Union query chắc ít bạn biết sử dụng, bạn nào nằm được xin chỉ giúp để các bạn trên diễn đàn tăng thêm kiến thức nha !

Cám ơn các bạn rất nhiều !
http://www.giaiphapexcel.com/forum/showthread.php?p=142111#post142111
 

Xem nhiều