Hỗ trợ làm NKC như Table được thiết kế?

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

vinhlong

Cao cấp
31/5/08
240
92
28
Vĩnh Long-Sài Gòn
Ký hiệu Số Ngày Khách hàng Nội dung Số tiền Tài khoản ghi Nợ Tài khoản ghi có
AA/11P 1 01/01/2013 Công ty A Tiếp khách 150,000 6428 1111
AA/11P 1 01/01/2013 Công ty A VAT 15,000 1331 1111
BB/12P 2 02/01/2013 Công ty B Mua hàng 200,000 1561 1111
BB/12P 2 02/01/2013 Công ty B VAT 20,000 1331 1111

Giờ mình muốn Query thể hiện như sau:
Ký hiệu Số Ngày Khách hàng Nội dung Tài khoản đối ứng Nợ Có
AA/11P 1 01/01/2013 Công ty A Tiếp khách 6,428 150,000
AA/11P 1 01/01/2013 Công ty A VAT 1,111 150,000
AA/11P 1 01/01/2013 Công ty A Tiếp khách 1,331 15,000
AA/11P 1 01/01/2013 Công ty A VAT 1,111 15,000
BB/12P 2 02/01/2013 Công ty B Mua hàng 1,561 200,000
BB/12P 2 02/01/2013 Công ty B VAT 1,111 200,000
BB/12P 2 02/01/2013 Công ty B Mua hàng 1,331 20,000
BB/12P 2 02/01/2013 Công ty B VAT 1,111 20,000

Rất mong được các Bro chỉ giáo và hỗ trợ
Thân chào
 
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
Ðề: Hỗ trợ làm NKC như Table được thiết kế?

Chào anh,

Anh có thể thử đoạn sql sau:


SELECT KyHieu, So, Ngay, KhachHang, NoiDung, TKDU, IIf(NoTien=0, NULL,NoTien) AS [No], IIf(CoTien=0,NULL,CoTien) AS Co
FROM [SELECT NKC.ID, NKC.KyHieu, NKC.So, NKC.Ngay, NKC.KhachHang, NKC.NoiDung, TKN AS TKDU, NKC.SoTien AS NoTien,0 AS CoTien FROM NKC

UNION ALL

SELECT NKC.ID, NKC.KyHieu, NKC.So, NKC.Ngay, NKC.KhachHang, NKC.NoiDung, TKC AS TKDU, 0 AS NoTien, NKC.SoTien AS CoTien FROM NKC]. AS vw_NKC
ORDER BY NKC.KyHieu, NKC.So, NKC.ID, NoTien DESC;


P/S: Lâu rồi ko làm coding nên ko biết có rơi vãi gì không, nếu sql code chưa được tối ưu thì mong anh thông cảm nhé :)

Nhưng mà anh thiết kế bảng NCK như thế này thì trùng lặp dữ liệu quá, chưa đạt chuẩn tối ưu (Nhập liệu mà trên table cứ thấy KH A, KH A,.... trùng liên tục là chưa ổn rồi)
 
Sửa lần cuối:
vinhlong

vinhlong

Cao cấp
31/5/08
240
92
28
Vĩnh Long-Sài Gòn
Ðề: Hỗ trợ làm NKC như Table được thiết kế?

Cảm ơn Bro HàiHai nhiều lắm nha
Ngoài đó có gặp bác Già Gân ko ? cho mình gửi lời thăm và chúc Bro và Bác Già Gân ăn Tết thật lớn nhé, lẫn một năm thành công trên mọi mặt
 
S

smallishball

Guest
17/2/13
1
0
0
hp
Ðề: Hỗ trợ làm NKC như Table được thiết kế?

Chào bạn,
Có thể cách trên chưa đúng mục đích của bạn.
Bạn có thể thử như sau:
1. Tạo Query1 như sau:
SELECT 1 as [NoCo],NKC.[Ký hiệu], NKC.Số, NKC.Ngày, NKC.[Khách hàng], NKC.[Nội dung], NKC.[Tài khoản ghi Nợ] as [Tài khoản đối ứng], NKC.[Số tiền] as [Nợ], 0 as [Có]
FROM NKC WHERE NKC.[Nội dung]<>'VAT'
UNION SELECT 2 as [NoCo],NKC.[Ký hiệu], NKC.Số, NKC.Ngày, NKC.[Khách hàng], 'VAT', NKC.[Tài khoản ghi Có] as [Tài khoản đối ứng], 0 as [Nợ],NKC.[Số tiền] as [Có]
FROM NKC WHERE NKC.[Nội dung]<>'VAT'
UNION
SELECT 3 as [NoCo],NKC.[Ký hiệu], NKC.Số, NKC.Ngày, NKC.[Khách hàng], NKC.[Nội dung], NKC.[Tài khoản ghi Nợ] as [Tài khoản đối ứng], NKC.[Số tiền] as [Nợ], 0 as [Có]
FROM NKC WHERE NKC.[Nội dung]='VAT'
UNION
SELECT 4 as [NoCo],NKC.[Ký hiệu], NKC.Số, NKC.Ngày, NKC.[Khách hàng], 'VAT', NKC.[Tài khoản ghi Có] as [Tài khoản đối ứng], 0 as [Nợ],NKC.[Số tiền] as [Có]
FROM NKC WHERE NKC.[Nội dung]='VAT'
2. Tạo Query2 như sau:
SELECT Query1.Noco, Query1.[Ký hiệu], Query1.Số, Query1.Ngày, Query1.[Khách hàng], IIF(Query1.[NoCo] = 3,Query1_1.[Nội dung],Query1.[Nội dung]) as [Nội dung], Query1.[Tài khoản đối ứng], Query1.Nợ, Query1.Có
FROM Query1 LEFT OUTER JOIN Query1 AS Query1_1 ON (Query1.Số = Query1_1.Số) AND (Query1.[Ký hiệu] = Query1_1.[Ký hiệu] AND Query1_1.[NoCo] = 1)
ORDER BY Query1.[Ký hiệu], Query1.Số, Query1.Noco;
 

Xem nhiều