Question : Pleins externes se joignent pour le CR

Salut experts,

I AM essayant d'obtenir des données de 2 tables qui ont le NO1 à 1 rapport excepté la colonne - job_no. Le rapport suivant ne recherche des données très limitées ou aucune dans quelques colonnes : le

SELECT job_history.job_no, job_history.cost, job_history.cost_code_no, job_history.cost_class_no, le job_budgets.job_no, job_budgets.orig_est_dollars, job_budgets.cost_code_no, le job_budgets

FULL de job_budgets.cost_class_no

FROM EXTERNE JOIGNENT des job_budgets du job_history
ON .job_no = job_history.job_no

The liant la colonne « job_no » contient beaucoup de rangées séparées pour chaque nombre unique de job_no - elles contiennent des données concernant les coûts périodiques du travail saisies avec le temps et je ne peux pas aider mais penser que ceci cause une partie de mon problème - mais je suis un vrai novice dans la colonne job_budgets.orig_est_dollars de SQL.

The contient des coûts économisés pour une colonne job_history.cost de la construction project.
The contient les coûts effectifs pour un projet. Ces coûts (dans les deux tables) sont décomposés par les catégories (1 - 26) dans la colonne : cost_code_no (dans les deux tables) et classifié comme matériel, travail, ou sous-marin par le contenu numérique du cost_class_no de colonne (1.2.3). Je dois éclater ces catégories dans mon rapport pour comparer des coûts effectifs aux coûts économisés. J'ai besoin simplement d'une question qui tirera toutes les données de ces deux tables dans ces colonnes ainsi je peux courir des rapports là-dessus.
class= de

Réponse : Pleins externes se joignent pour le CR

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…


Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us