Vous pourriez, mais honnêtement je préfère faire autant préparation de données que le dos possible sur le serveur. Que manière que je peux manoeuvrer parfois sans devoir récrire des rapports, et essai pour prendre le contrôle du volume de données étant échangées environ, et, essayant de tirer profit de n'importe quoi le serveur pourrait pouvoir offrir en termes d'exécution.
Dans ce cas-ci, je créerais probablement une vue et la choisirais alors simplement parmi la vue.
Une vue est comme une table virtuelle. Elle est vraiment plutôt une question stockée, avec l'avantage que vous pouvez se référer à une vue juste comme n'importe quelle autre table. Elle ne tient pas l'itelf de données, mais sait où l'obtenir de, et le serveur fait trop ainsi essayera d'employer toute la stat d'exécution des contes fondamentaux en regardant des plans de question.
La création de la vue est éteinte une fois une de processus, une fois que là, l'emploient juste comme une table. Toutes les mises à jour aux données est faites sur les tables réelles, et est instantanément reflétées dans la vue. Elles sont des choses assez fraîches et idéalement adapté à ces types de cas où la question est un peu impliqué/peu difficile à manier pour employer directement.
Première fois dedans, vous « créez » la vue, les changements suivants êtes fait using « changez »
-- APPROUVER, laisser créer la vue…. les conventions de nomination peuvent être importantes et il n'est pas rare de trouver les quelques quelques caractères refléter le type d'objet de base de données.
-- Dans ce cas-ci, using VW de préfixe pour dénoter la VUE
CRÉER LA VUE vw_Jobs_Budget_vs_Actual AS
CHOISIR le job_no
, cost_code_no
, somme (Labor_Budget) comme labor_budget
, somme (Material_Budget) Material_Budget
, somme (Subcontract_Budget) Subcontract_Budget
, somme (Mileage_Budget) Mileage_Budget
, somme (Burden_Budget) Burden_Budget
, somme (Labor_cost) Labor_cost
, somme (Material_cost) Material_cost
, somme (Subcontract_cost) Subcontract_cost
, somme (Mileage_cost) Mileage_cost
, somme (Burden_cost) Burden_cost
, somme (total_budget) comme total_budget
, somme (total_cost) comme total_cost
, somme (total_budget) - somme (total_cost) comme désaccord
DE (
choisir le job_no
, cost_code_no
, cas quand cost_class_no = puis orig_est_dollars 1 autrement 0 extrémités comme Labor_Budget
, cas quand cost_class_no = 2 puis orig_est_dollars autrement 0 extrémités comme Material_Budget
, cas quand cost_class_no = 3 puis orig_est_dollars autrement 0 extrémités comme Subcontract_Budget
, cas quand cost_class_no = 4 puis orig_est_dollars autrement 0 extrémités comme Mileage_Budget
, cas quand cost_class_no = 6 puis orig_est_dollars autrement 0 extrémités comme Burden_Budget
, orig_est_dollars comme total_budget
, 0.00 comme Labor_cost
, 0.00 comme Material_cost
, 0.00 comme Subcontract_cost
, 0.00 comme Mileage_cost
, 0.00 comme Burden_cost
, 0.00 comme total_cost
De Job_Budgets
UNION TOUTE
choisir le job_no
, cost_code_no
, 0.00 comme Labor_budget
, 0.00 comme Material_budget
, 0.00 comme Subcontract_budget
, 0.00 comme Mileage_budget
, 0.00 comme Burden_budget
, 0.00 comme total_budget
, cas quand cost_class_no = 1 alors coûté autrement 0 extrémités comme Labor_Cost
, cas quand cost_class_no = 2 alors coûtés autrement 0 extrémités comme Material_Cost
, cas quand cost_class_no = 3 alors coûtés autrement 0 extrémités comme Subcontract_Cost
, cas quand cost_class_no = 4 alors coûtés autrement 0 extrémités comme Mileage_Cost
, cas quand cost_class_no = 6 alors coûtés autrement 0 extrémités comme Burden_Cost
, coût comme total_cost
De Job_History
) src
GROUPE PAR Job_No, cost_code_no
-- ORDRE PAR Job_No, cost_code_no
-- ne pas inclure l'ORDRE PRÈS dans une vue à moins que vous employiez également le qualificateur SUPÉRIEUR
-- se rappeler juste de faire votre propre ordre par en choisissant parmi la vue.
ALLER
-- Maintenant qu'a été fait…
-- Nous pouvons commencer à l'employer. Se rapportant à elle juste comme toute autre table (jolie beaucoup… nous pouvons choisir, joignons, employons où, ordre d'utilisation près, etc. global etc.)
choisir * à partir de vw_Jobs_Budget_vs_Actual
-- et est ce ce que vous employez maintenant dans vos rapports en cristal en tant que votre point d'émission…