Nhờ giúp chuyển đổi bảng nhập xuất tồn theo hàng ngang

Chuyên mục thảo luận các vấn đề liên quan đến ứng dụng quản lý và cơ sở dữ liệu

Điều hành viên: Điều hành

Đăng trả lời
muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 553
Ngày tham gia: Thứ 6 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 190 times
Been thanked: 36 times
Tiếp xúc:

Nhờ giúp chuyển đổi bảng nhập xuất tồn theo hàng ngang

Gửi bài by muaphonui_2010 »

Chào các bạn.
Mình có 1 bảng dữ liệu tồn chi tiết các mặt hàng theo ngày.
Giờ mình muốn nó theo chiều ngang.
Nhờ các bạn giúp mình với.
Đây là hình mình minh họa cho các bạn dễ hiểu ý mình.
Hình ảnh

Dữ liệu mẫu mình chũng bị sẳn ở đây.
[sql]DECLARE @Table1 TABLE
(ngaythang date, mahang nvarchar(25), nhap INT,xuat INT,ton INT)
;

INSERT INTO @Table1
(ngaythang, mahang, nhap, xuat,ton)
VALUES
( '2020/10/26', 'A', 4,0,4),
( '2020/10/27', 'A', 11,4,11),
( '2020/10/28', 'A', 7,11,7),
( '2020/10/29', 'A', 0,7,0),
( '2020/10/26', 'B',20,0,20),
( '2020/10/27', 'B', 5,2,23),
( '2020/10/28', 'B', 0,3,20),
( '2020/10/29', 'B', 0,5,15),
( '2020/10/27', 'C', 4,0,4),
( '2020/10/28', 'C', 11,4,11),
( '2020/10/29', 'C', 7,11,7),
( '2020/10/30', 'C', 0,7,0),
( '2020/10/28', 'D',20,0,20),
( '2020/10/29', 'D', 5,2,23),
( '2020/10/30', 'D', 0,3,20),
( '2020/10/31', 'D', 0,5,15)
;[/sql]
Xin cảm ơn.
muaphonui_2010
Thành viên ưu tú
Thành viên ưu tú
Bài viết: 553
Ngày tham gia: Thứ 6 26/11/2010 1:15 pm
Đến từ: TP.HCM
Has thanked: 190 times
Been thanked: 36 times
Tiếp xúc:

Re: Nhờ giúp chuyển đổi bảng nhập xuất tồn theo hàng ngang

Gửi bài by muaphonui_2010 »

Mình đã mờ ra được rồi.
Đây là code mình mò được
[sql]Declare @SQL Nvarchar(max) = '
Select *
From (
Select A.ngaythang
,B.*
From #phatsinh A
Cross Apply ( values ( mahang+''-Nhap'',nhap)
,( mahang+''-Xuat'',xuat)
,( mahang+''-Ton'',cuoiky)
) B (Item,Value)
) S
Pivot (sum([Value]) For [Item] in (' + Stuff((Select Distinct ','+QuoteName(mahang+'-Nhap')
+','+QuoteName(mahang+'-Xuat')
+','+QuoteName(mahang+'-Ton')
From #phatsinh
Order By 1
For XML Path('')),1,1,'') + ') ) p'[/sql]
Đăng trả lời

Quay về