Bonjour!

J'ai ces 2 tables (DOCU_PROD.K_DOCUMENT=DOCUMENTS.K_DOCUMENT) :
Nom : Marge.PNG
Affichages : 1492
Taille : 24,5 Ko

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%')