ID ---- ACCOUNT ---- SECTOR ---- AMOUNT_CURRENCY1 ------ AMOUNT_CURRENCY2
1 --- account1 ---- sector1 --- 100 ------ 200
2 --- account1 ---- sector2 --- 150 ------ 250
3 --- account2 ---- sector1 --- 250 ------ 300
4 --- account2 ---- sector2 --- 90 ------ 180
je besoin de données pour être comme çadonnées SQLServer Convertir table Pivot
sector1 ------------ sector2
| amount1 | amount2 | amount1 | amount2
Account1 | 100 | 200
Account2 | 250 | 250
je dois mettre le résultat en asp.net gridview modifier
J'utilise le script suivant : 1- pour obtenir des colonnes:
DECLARE @ColumnHeaders VARCHAR(MAX)
SELECT @ColumnHeaders =
COALESCE(
@ColumnHeaders + ',[!sector:' + cast(sector_ID as nvarchar)+ ':' + sector_name + ']',
'[!sector:' + cast(sector_ID as nvarchar)+ ':' + sector_name+ ']'
)
FROM vw_Transaction
group by sector_ID, sector_name
2- pivot:
DECLARE @TableSQL NVARCHAR(MAX)
SET @TableSQL = N'
SELECT *
FROM (SELECT trans_id, account_name, sector_id, sector_name,
amount_currency1, amount_currency2, ''!sector:'' + cast(sector_ID as nvarchar)+ '':'' + sector_name as col
FROM dbo.vw_Transaction
WHERE
trans_id=' + CAST(@trans_id as varchar) +'
) AS PivotData
PIVOT (
MAX(amount_currency1)
FOR col IN (
' + @ColumnHeaders + '
)
) AS PivotTable'
EXECUTE(@TableSQL)
le problème, j'ai 2 champs qui doivent pivoter, amount_currency1 et amount_currency2
se fermé en 0,03 secondes –
nous Afficher un code, qu'avez-vous essayé jusqu'à présent? – bUKaneer
@ АртёмЦарионов Donnez du temps au nouvel utilisateur pour l'améliorer et l'apprendre, donnez-lui de l'aide pour l'améliorer. – Aristos