sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg vise prognoseårsdata fra række til kolonne?

prøv dette, du skal bruge dynamisk sql

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. PL/SQL-udvikler hvordan får man den række, der fik indsættelsen til at mislykkes?

  2. Bliver privilegierne på den underliggende tabel automatisk videregivet til alle visninger, der er oprettet på tabellen?

  3. Datarevision i NHibernate og SqlServer

  4. Kan jeg starte en trigger på select statement i mysql?