Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm cách nào để tôi có thể hiển thị dữ liệu năm dự báo từ hàng thành cột?

hãy thử cái này, bạn phải sử dụng sql động

Declare @toyear int=2016
Declare @forcast int=10
Declare @t table (ITEM varchar(50), years int, qty int)
insert into @t
select 'TM-A' ITEM , 2013 years, 100 qty
union all
select 'TM-B' ITEM , 2013 years, 200 qty

;with CTE1 as
(
select * from @t
union all
select b.ITEM,b.years+1,b.qty+((@forcast*b.qty)/100) from @t a 
inner join cte1 b on a.ITEM=b.ITEM 
and b.years<@toyear
)
    select * from
(select  * from cte1 )t4
pivot(min(qty) for years in([2013],[2014],[2015],[2016]))pvt


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách gửi nhiều lệnh tới SQL Server 2008 với một chuyến khứ hồi

  2. Liệt kê tất cả các cột không thể xóa trong cơ sở dữ liệu máy chủ SQL

  3. Truy vấn để kiểm tra xem một cột có thể nullable hay không

  4. Lấy hai số đếm và sau đó chia chúng

  5. Câu lệnh xóa SQL Server:Cách xóa một hoặc nhân hàng khỏi bảng