Fråga : Fullt yttre sammanfogar för CR

Hi experter, den pröva förmiddagen för

I att få data från 2 bordlägger som har inget 1 - 1t-sidig förhållande bortsett från kolonnen - job_no. Efter meddelandet hämtar mycket inskränkt data eller inga alls i några kolonner:

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, YTTRE job_budgets

FULL för job_budgets.cost_class_no

FROM SAMMANFOGAR job_budgets för job_history
ON .job_no = job_history.job_no

The som anknyter kolonnen ”job_no”, innehåller många separata ror för varje unik job_no numrerar - de innehåller periodiskt jobb kostar data som med tiden skrivs in, och jag kan inte hjälpa bara funderare som denna orsakar något av mitt problem - men I-förmiddagen som en verklig novis i kolonnen job_budgets.orig_est_dollars för SQL.

The innehåller budgeterat kostar för en kolonn job_history.cost för konstruktion project.
The innehåller det faktiskt kostar för en projektera. Dessa kostar (i båda bordlägger), är brutna besegrar vid kategorier (1 - 26) i kolonnen: cost_code_noen (i både bordlägger) och hemligt som materiellt, arbets- eller suben vid det numeriskt tillfredsställer av kolonncost_class_noen (1.2.3). Jag behöver att bryta ut dessa kategorier i min rapport för att jämföra faktiskt kostar till budgeterat kostar. Jag behöver enkelt en query som ska handtag som, alla av data från dessa två bordlägger i dessa kolonner, så jag kan köra rapporter på den.
" klar "

Svar : Fullt yttre sammanfogar för CR

Du kunde, men honestly jag föredrar att göra så mycket data förbereder som möjlighetbaksida på serveren. Ditåt jag kan behandla ibland, utan att måste att skriva om rapporter, och försök att ta kontrollerar över volymen av data som omkring kastas hit och dit, och, pröva att ta fördel av något som den kan serveren är kompetent att erbjuda in, benämner av kapacitet.

I detta fall jag skulle skapar antagligen en beskåda och därefter väljer enkelt från beskåda.

En beskåda är lik ett faktiskt bordlägger. Det är egentligen mer något liknande per lagrad query, med fördelen som du kan se till en något liknande för beskåda precis, någon som annan bordlägger. Det rymmer inte dataitelf, utan vet var att få den från, och serveren gör för så att ska försök att använda alla kapacitetsstatistik från de bakomliggande sagorna, när se query planerar.

Att skapa beskåda är en gång av ett processaa, när där, använder det precis något liknande en bordlägga. Några uppdateringar till data göras på det faktiskt bordlägger och reflekteras ögonblickligen i beskåda. De är nätt kyler saker, och idealt passat till dessa typer av fall, var queryen äger rum, a bet involverat/a bet otympligt för att använda direkt.

Första tid in, du ”skapar” beskåda, följande ändringar göras using ”förändrar sig”,

-- REKO låter för att skapa beskåda…., namnge reglar kan vara viktiga, och den är inte ovanlig att finna de få få teckenen som reflekterar typen av databas, anmärker.
-- I detta fall using prefixVWEN som ska betecknas, BESKÅDA

SKAPA BESKÅDAR vw_Jobs_Budget_vs_Actual SOM
VÄLJ job_noen
          , cost_code_no
          , summa (Labor_Budget) som labor_budget
          , summa (Material_Budget) Material_Budget
          , summa (Subcontract_Budget) Subcontract_Budget
          , summa (Mileage_Budget) Mileage_Budget
          , summa (Burden_Budget) Burden_Budget
          , summa (Labor_cost) Labor_cost
          , summa (Material_cost) Material_cost
          , summa (Subcontract_cost) Subcontract_cost
          , summa (Mileage_cost) Mileage_cost
          , summa (Burden_cost) Burden_cost
          , summa (total_budget) som total_budget
          , summa (total_cost) som total_cost
          , summa (total_budget) - summa (total_cost) som variance

FRÅN (
            välj job_noen
                      , cost_code_no
                      , fall, när cost_class_noen = 1 orig_est_dollars annars 0 avslutar därefter som Labor_Budget
                      , fall, när cost_class_noen = 2 orig_est_dollars annars 0 avslutar därefter som Material_Budget
                      , fall, när cost_class_noen = 3 orig_est_dollars annars 0 avslutar därefter som Subcontract_Budget
                      , fall, när cost_class_noen = 4 orig_est_dollars annars 0 avslutar därefter som Mileage_Budget
                      , fall, när cost_class_noen = 6 orig_est_dollars annars 0 avslutar därefter som Burden_Budget
                      , orig_est_dollars som total_budget
                      , 0.00 som Labor_cost
                      , 0.00 som Material_cost
                      , 0.00 som Subcontract_cost
                      , 0.00 som Mileage_cost
                      , 0.00 som Burden_cost
                      , 0.00 som total_cost
            Från Job_Budgets

            ALL UNION

            välj job_noen
                    , cost_code_no
                    , 0.00 som Labor_budget
                    , 0.00 som Material_budget
                    , 0.00 som Subcontract_budget
                    , 0.00 som Mileage_budget
                    , 0.00 som Burden_budget
                    , 0.00 som total_budget
                    , fallet, när cost_class_noen = 1 kostar därefter annars 0, avslutar som Labor_Cost
                    , fallet, när cost_class_noen = 2 kostar därefter annars 0, avslutar som Material_Cost
                    , fallet, när cost_class_noen = 3 kostar därefter annars 0, avslutar som Subcontract_Cost
                    , fallet, när cost_class_noen = 4 kostar därefter annars 0, avslutar som Mileage_Cost
                    , fallet, när cost_class_noen = 6 kostar därefter annars 0, avslutar som Burden_Cost
                    kosta som total_cost,
                     
            Från Job_History
          ) src
GRUPP AV Job_No, cost_code_no
-- BESTÄLLA VID Job_No, cost_code_no
-- inkludera inte BESTÄLLER BY i en beskåda, om inte du använder också den BÄSTA bestämningen
-- minns precis att göra ditt eget beställer vid, när du väljer från beskåda.


-- Nu har det gjorts…,
-- Vi kan starta att använda det. Se till den precis något liknande någon annan bordlägger (nätt mycket… som vi kan välja, sammanfogar, använder, var, bruk beställer by, förenat etc. etc.),

välj * från vw_Jobs_Budget_vs_Actual

-- och det är vad du använder nu i dina crystal rapporter som din datakälla…,


Andra lösningar  
 
programming4us programming4us