Bonjour!
J'ai ces 2 tables (DOCU_PROD.K_DOCUMENT=DOCUMENTS.K_DOCUMENT) :
Je souhaite faire une Query pour faire pivoter DOCU_PROD.TOTAL pour un (K_PRODUCT et F_LOT) donné. Au maximum il pourra y avoir que 2 colonnes de sortie car elle dépende de DOCUMENTS.REFERENCE
J'ai essayer mais je ne parviens pas a utiliser le pivot de base.. (Msg 8114 : Erreur de conversion du type de données nvarchar en float.) Pourtant F_LOT et TOTAL sont des float
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 select 'K_PRODUCT' AS K_PRODUCT, [F_PREV], [F_PLAN] from ( select Docu.REFERENCE, DP.K_PRODUCT, DP.TOTAL from DOCU_PROD DP join DOCUMENTS Docu on DP.K_DOCUMENT=Docu.K_DOCUMENT where DP.K_PRODUCT=54 and DP.F_LOT=62 ) as SourceTable PIVOT ( Max(TOTAL) FOR K_PRODUCT IN ([F_PREV], [F_PLAN]) ) as PivotTable;
Pour "Réultats 1" ci-dessus:
- La query récupère les 2 lignes où K_PRODUCT=1 ET F_LOT=1,
- Le pivot met DOCU_PROD.TOTAL (600) dans V_PREV car DOCUMENTS.REFERENCE commence par D (like 'D%')
- Le pivot met DOCU_PROD.TOTAL (800) dans F_PLAN car DOCUMENTS.REFERENCE commence par IPC (like 'IPC%')
Partager