2009-07-30 2 views
1

http://www.geocities.com/colinpriley/sql/sqlitepg09.htm a une belle technique pour créer un rapport tabulaire où les noms de colonne pour la table peuvent être codés dans la requête mais dans mon cas, les colonnes doivent être des valeurs de la base de données. Dire que j'ai chiffres de ventes quotidiennes comme:Comment puis-je créer un rapport tabulaire dans SQL lorsque les noms de colonnes se trouvent dans la base de données, et non dans la requête?

Transaction Date  Rep Product Amount 
    1   July 1 Bob A12  $10 
    2   July 2 Bob B24  $12 
    3   July 2 Ted A12  $25 
    ... 

et je veux un rapport de synthèse hebdomadaire qui montre la quantité de chaque produit chaque représentant vendu:

 A12 B24 
    Bob $10 $12 
    Ted $25 $0 

Mes noms de colonne proviennent de la colonne de produit. Supposons que tout produit ayant une ligne dans la plage de dates spécifiée contienne une colonne dans le rapport. Mais d'autres produits - qui n'ont pas été vendus dans ce laps de temps - ne devraient pas avoir une colonne de tous les 0. Comment puis je faire ça? Points bonus si cela fonctionne dans SQLite.

TIA.

+0

Vous aurez besoin d'un langage de programmation pour générer le sql, d'autant plus que SQLite ne supporte pas sql dynamique. Utilisez-vous une langue? –

Répondre

0

http://weblogs.asp.net/wallen/archive/2005/02/18/376150.aspx a une bonne façon d'extraire des colonnes

+0

Je vois comment cela fonctionne mais je ne vois pas comment cela peut vous aider. J'ai plutôt le problème inverse: je veux créer des noms de colonnes (pour le tableau croisé) à partir de données, pas de données à partir de noms de colonnes. Peut-être que mon processeur de requêtes est un peu lent aujourd'hui. –

+0

pivot? http://blog.sqlauthority.com/2008/05/22/sql-server-pivot-table-example/ –

Questions connexes