Je table de vue qui ressemble à ceci:Comment puis-je créer une procédure stockée (temporaire?) Pour aider à faire une vue récapitulative?
Et j'ai commencé à créer une vue de résumer par le statut pour chaque devise:
WITH C AS (SELECT * FROM CampaignsPublisherReportSummary)
SELECT
'Total' T,
SUM(CASE WHEN PayCurrency='USD' THEN Total END) USD,
SUM(CASE WHEN PayCurrency='EUR' THEN Total END) EUR,
SUM(CASE WHEN PayCurrency='GBP' THEN Total END) GBP,
SUM(CASE WHEN PayCurrency='AUD' THEN Total END) AUD
FROM C
UNION
SELECT
'ToBePaid' T,
SUM(CASE WHEN PayCurrency='USD' THEN ToBePaid END) USD,
SUM(CASE WHEN PayCurrency='EUR' THEN ToBePaid END) EUR,
SUM(CASE WHEN PayCurrency='GBP' THEN ToBePaid END) GBP,
SUM(CASE WHEN PayCurrency='AUD' THEN ToBePaid END) AUD
FROM C
GO
Je pourrais finir et obtenir ce que je veux en copiant/collant à nouveau pour chacun des autres statuts (Unverified, Verified, ... etc) mais le programmeur en moi veut avoir une sorte de fonction prend le nom du statut et exécute une version templative de la requête ...
QUESTION: Puis-je faire ceci? Ou y a-t-il un autre meilleur moyen de divulguer l'information qui me manque?
MISE À JOUR: Mon but est d'avoir quelque chose comme ceci:
SELECT * FROM #mytempfunc('Total')
UNION SELECT * FROM #mytempfunc('ToBePaid')
UNION ...
Je ne suis pas tout à fait certain sur ce que vous essayez de faire. Essayez-vous de générer dynamiquement les colonnes de devises? Si c'est le cas, vous pouvez faire un select paycurrency distinct de [current_table], faire un curseur/boucle et construire dynamiquement la requête qui résume le total/tobepaid montants. – mservidio
merci pour les commentaires - peut-être que j'essaie de le rendre compliqué quand ce n'est pas le cas. de toute façon, j'ai mis à jour la question et mis quand je suis "envisioning" comme objectif ici ... –
Si le résultat de cette requête est de créer un rapport, dans SSRS ou similaire, laissez l'outil de reporting gérer le regroupement et les totaux . – Tony