Nume coloane dinamic

Configurare noua (How To)

Situatie

Am primit de cateva ori cerinta ca, intr-un raport facut in sql, sa afisez dinamic numele coloanelor, in functie de ce reprezinta ele.

Ca sa fie mai clar, dau un exemplu: mi s-a cerut sa afisez coloana dobanda intr-un raport de doua ori, odata cu numele anului curent si alta data cu numele anului precedent, si sa aduc in ele valorile aferente. Iar acest raport trebuia sa poata sa fie rulat in fiecare an si valorile si NUMELE COLOANELOR respective sa se schimbe in concordanta.

Daca aveti aceasta problema, am facut un exemplu de script ca sa va fie de ajutor in a intelege cum puteti face acest lucru.

 

Solutie

declare @AnCurent int
set @AnCurent = YEAR(GETDATE())-1
declare @AnPrecedent int
set @AnPrecedent = @AnDorit – 1

declare @sql nvarchar(MAX)
set @sql = ‘
select
NUME,
PRENUME,
CNP,
SOLD,
DOBANDA_AN_CURENT as DOBANDA_{0},
DOBANDA_AN_PRECEDENT DOBANDA_{1},
IMPOZIT_AN_CURENT as IMPOZIT_{0},
IMPOZIT_AN_PRECEDENT as IMPOZIT_{1},
from tabela1’

set @sql = REPLACE(@sql, ‘{0}’, CAST(@AnCurent as varchar))
set @sql = REPLACE(@sql, ‘{1}’, CAST(@AnPrecedent as varchar))

exec sp_executesql (@sql)

Tip solutie

Permanent

Voteaza

(21 din 51 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?