2009-06-26 7 views
0

Considérez les données suivantes:total avec requête de sélection

Insurance_Comp | 1To30DaysAgeing | 31To60DaysAgeing | 61To90DaysAgeing | TotalVehicles 

============================================================================= 

ABC | 30 | 5 | 20 | 55 

XYZ | 10 | 35 | 5 | 50 

Je calcule le nombre de véhicules âgés pour le groupe particulier après un stock # est attribué à ce véhicule. Le nombre de véhicules pour un groupe (par exemple de 1 à 30 jours) est calculé en utilisant une requête complexe. J'ai écrit SP pour obtenir ce résultat. Ce que je veux, c'est calculer le total des véhicules lors de l'exécution de la même requête select. Pour simplifier, j'ai créé des fonctions en SQL pour obtenir le nombre de véhicules pour chaque groupe.

En ce moment, je m en utilisant la requête comme ça ...

Select Ins_Comp, dbo.fn_1To30Ageing(...), dbo.fn_31To60Ageing(...), dbo.fn_61To90Ageing(...) from Table Where .... 

Je calcule le total en utilisant événement RowDataBound de GridView dans ASP.NET avec C#. Est-il possible de calculer le total dans la requête elle-même? Par ailleurs, je ne veux pas total comme dbo.fn_1To30Ageing (...) + dbo.fn_31To60Ageing (...) + dbo.fn_61To90Ageing, car cela nécessite un double temps de traitement.

+0

Pourriez-vous afficher les données de sortie que vous aimeriez voir? qu'est-ce que fn_1to30 ..., fn_31to60 ... faire? – shahkalpesh

+0

La sortie que je voulais est en haut. Les fonctions calculent les jours vieillis. La fonction dbo.fn_1To30Ageing() calcule le nombre de jours entre 1 et 30. Je veux calculer la dernière colonne TotalVehicles dans la requête elle-même. – IrfanRaza

+0

Il sera plus facile à comprendre, si vous mettez les données d'entrée et les données de sortie. – shahkalpesh

Répondre

1

Je ne suis pas familir avec ASP.NET, mais s'il est seul aspect SQL, vous pouvez certainement utiliser des sous-requête:

SELECT A, B, C, SUM (A + B + C) ( Select Ins_Comp, dbo.fn_1To30Ageing (...) A, dbo.fn_31To60Ageing (...) AS B, dbo.fn_61To90Ageing (...) AS C du tableau Où .... ) TEMP

+0

Je pense que vous n'avez pas complètement lu ma question. Les valeurs de A, B, C sont calculées à travers les fonctions et je ne veux pas de nouveau total en les appelant. – IrfanRaza

+0

Hey, facile là-bas, votre question est confuse en raison du manque d'informations. La requête ci-dessus n'utilise qu'une seule fois chaque fonction, où est le problème? – RedFilter

+0

Oui, la sous-requête 1 n'exécute qu'une seule fois ces 3 fonctions. – bryantsai

Questions connexes