Questione : Esterni pieni si uniscono per CR

Ciao esperti,

I che prova ad ottenere i dati da 2 tabelle che non hanno rapporto 1 a 1 tranne la colonna - job_no. La seguente dichiarazione richiama i dati molto limitati o neanche uno in alcune colonne: il

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

FULL di job_budgets.cost_class_no

FROM ESTERNO UNISCE i job_budgets del job_history
ON .job_no = job_history.job_no

The che collega la colonna “job_no„ contiene molte file separate per ogni numero unico di job_no - contengono gli elementi periodici del costo di lavoro digitati col passare del tempo e non posso aiutare ma pensare che questo stia causando alcuno del mio problema - ma sono un debuttante reale nella colonna job_budgets.orig_est_dollars di SQL.

The contengo i costi stanziati per una colonna job_history.cost della costruzione project.
The contengo i costi reali per un progetto. Questi costi (in entrambe le tabelle) sono ripartiti per le categorie (1 - 26) nella colonna: cost_code_no (in entrambe le tabelle) e classificato come materiale, lavori, o sommergibile per il contenuto numerico del cost_class_no della colonna (1.2.3). Devo scoppiare queste categorie nel mio rapporto per confrontare i costi reali ai costi stanziati. Ho bisogno semplicemente di una domanda che tirerà tutti dati da queste due tabelle in queste colonne in modo da posso farle funzionare i rapporti.
class= del

Risposta : Esterni pieni si uniscono per CR

Potreste, ma onesto preferisco fare tanta preparazione di dati quanto la parte posteriore possibile sull'assistente. Che senso che posso maneggiare a volte senza dovere riscrivere i rapporti e prova per prendere controllo sopra il volume di dati che sono passati circa e, provando ad approfittare di qualche cosa l'assistente potrebbe potere offrire in termini di prestazione.

In questo caso, probabilmente genererei una vista ed allora semplicemente sceglierei dalla vista.

Una vista è come una tabella virtuale. È realmente più come una domanda immagazzinata, con il vantaggio che potete riferirti ad una vista appena come qualunque altra tabella. Non tiene il itelf di dati, ma conosce dove ottenerlo da e l'assistente fa ugualmente in modo da proverà ad usare tutto lo stats di prestazione dai racconti di fondo quando esamina i programmi di domanda.

La generazione della vista è una volta fuori un trattato, una volta che là, lo usa appena come una tabella. Tutti gli aggiornamenti ai dati è fatto sulle tabelle reali ed istantaneamente è riflesso nella vista. Sono cose abbastanza fredde ed adatto a idealmente a questi tipi di casi dove la domanda è una punta in questione/punta poco maneggevole per usare direttamente.

Prima volta dentro, “generate„ la vista, cambiamenti successivi siete fatti using “vi alterate„

-- APPROVARE, lasciare per generare la vista…. le convenzioni di nomina possono essere importanti e non è raro scoprire che i pochi pochi caratteri riflettono il tipo di oggetto di base di dati.
-- In questo caso, using il VW di prefisso per denotare VISTA

GENERARE LA VISTA vw_Jobs_Budget_vs_Actual AS
SELEZIONARE il job_no
          , cost_code_no
          , somma (Labor_Budget) come labor_budget
          , somma (Material_Budget) Material_Budget
          , somma (Subcontract_Budget) Subcontract_Budget
          , somma (Mileage_Budget) Mileage_Budget
          , somma (Burden_Budget) Burden_Budget
          , somma (Labor_cost) Labor_cost
          , somma (Material_cost) Material_cost
          , somma (Subcontract_cost) Subcontract_cost
          , somma (Mileage_cost) Mileage_cost
          , somma (Burden_cost) Burden_cost
          , somma (total_budget) come total_budget
          , somma (total_cost) come total_cost
          , somma (total_budget) - somma (total_cost) come varianza

DA (
            selezionare il job_no
                      , cost_code_no
                      , caso quando cost_class_no = allora orig_est_dollars 1 altrimenti 0 estremità come Labor_Budget
                      , caso quando cost_class_no = 2 allora orig_est_dollars altrimenti 0 estremità come Material_Budget
                      , caso quando cost_class_no = 3 allora orig_est_dollars altrimenti 0 estremità come Subcontract_Budget
                      , caso quando cost_class_no = 4 allora orig_est_dollars altrimenti 0 estremità come Mileage_Budget
                      , caso quando cost_class_no = 6 allora orig_est_dollars altrimenti 0 estremità come Burden_Budget
                      , orig_est_dollars come total_budget
                      , 0.00 come Labor_cost
                      , 0.00 come Material_cost
                      , 0.00 come Subcontract_cost
                      , 0.00 come Mileage_cost
                      , 0.00 come Burden_cost
                      , 0.00 come total_cost
            Da Job_Budgets

            UNIONE TUTTA

            selezionare il job_no
                    , cost_code_no
                    , 0.00 come Labor_budget
                    , 0.00 come Material_budget
                    , 0.00 come Subcontract_budget
                    , 0.00 come Mileage_budget
                    , 0.00 come Burden_budget
                    , 0.00 come total_budget
                    , caso quando cost_class_no = 1 allora costato altrimenti 0 estremità come Labor_Cost
                    , caso quando cost_class_no = 2 allora costati altrimenti 0 estremità come Material_Cost
                    , caso quando cost_class_no = 3 allora costati altrimenti 0 estremità come Subcontract_Cost
                    , caso quando cost_class_no = 4 allora costati altrimenti 0 estremità come Mileage_Cost
                    , caso quando cost_class_no = 6 allora costati altrimenti 0 estremità come Burden_Cost
                    , costo come total_cost
                     
            Da Job_History
          ) src
GRUPPO da Job_No, cost_code_no
-- ORDINE da Job_No, cost_code_no
-- non comprendere l'ORDINE VICINO in una vista a meno che inoltre usiate il qualificatore SUPERIORE
-- ricordar appena fare il vostro proprio ordine da quando scelgono dalla vista.
ANDARE

-- Ora che è stato fatto…
-- Possiamo cominciare usando. Riferendosi appena come qualunque altra tabella (praticamente… possiamo selezionare, ci uniamo, usiamo dove, ordine di uso vicino, ecc aggregato ecc)

selezionare * a partire da vw_Jobs_Budget_vs_Actual

-- e quello è che cosa ora utilizzate nei vostri rapporti di cristallo come vostra fonte di dati…


Altre soluzioni  
 
programming4us programming4us