J'ai vu quelques Q/A semblables ici, mais les cas que j'ai vus étaient des variations sur la variété "ventes par année par trimestre", donc DECODE est utilisé, avec 4 catégories.Données DB2 pivotantes - où le nombre de colonnes et de lignes n'est pas fixe
Dans mon cas, je ne sais pas à l'avance combien de lignes ou de colonnes le pivot aura.
| Pay | Age | Value |
|-----|-----|-------|
| 1 | 1 | 10 |
| 1 | 2 | 20 |
| 1 | 3 | 30 |
| 2 | 1 | 90 |
| 2 | 2 | 80 |
| 2 | 3 | 70 |
et nous voulons que le résultat est défini comme
PAYGROUP Millennials GenX Boomers
1 10 20 30
2 90 80 70
Ce serait facile avec une déclaration PIVOT
, à savoir
Transform Max(VALUE) AS V
SELECT PAYGROUP
FROM table
GROUP BY PAYGROUP
PIVOT AGEGROUP;
mais mon DB2 n'a pas de fonction PIVOT
. Le nombre de groupes de paie et de groupes d'âge peut varier d'un cas à l'autre, par exemple, les données peuvent avoir des nombres différents de groupes de rémunération et d'âge pour différents cas.
S'il n'est pas corrigé, alors vous devriez envisager de le faire dans votre code d'application – GurV
Aucun RDBMS ne permet les colonnes d'exécution dans une instruction 'PIVOT', puisque les définitions de colonne peuvent ' t être des champs de données. Cela doit être fait avec SQL dynamique. Après avoir obtenu la liste des valeurs 'colonne', les [techniques standard s'appliquent] (https://stackoverflow.com/questions/15529107/pivoting-in-db2) –