Pytanie : Folować Zewnętrzny Łączyć dla CR

Cześć Ekspert,

I am dane od 2 stół który mieć nie (1) (1) związek oprócz the kolumna - job_no. The następujący oświadczenie odzyskiwać bardzo limitowany dane lub odzyskiwać w niektóre kolumna:

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.cost_class_no

FROM job_budgets

FULL ZEWNĘTRZNY ŁĄCZYĆ job_history
ON job_budgets .job_no = job_history.job_no

The zazębianie szpaltowy "job_no" zawierać wiele oddzielny rząd dla oddzielny unikalny job_no liczba - zawierać okresowy akcydensowy koszt dane wchodzić do przez czas i I móc ale że wchodzić do powodować wchodzić do mój problem - ale I być istny nowicjusz w SQL.

The kolumna job_budgets.orig_est_dollars zawierać budżetować koszt dla budowa project.
The kolumna job_history.cost zawierać the faktyczny koszt dla projekt. Te koszt (w oba stół) być łamany puszek kategoria ((1) - 26) w the kolumna: cost_code_no (w oba stół) i klasyfikować jako materiał, praca, lub okręt podwodny the numeryczny zawartość the szpaltowy cost_class_no (1,2,3). I potrzebować te kategoria w mój raport faktyczny koszt budżetować koszt. I po prostu potrzebować zapytanie który ciągnąć i the dane od te dwa stół w te kolumna więc I móc raport na ono.

Odpowiedź : Folować Zewnętrzny Łączyć dla CR

Ty móc, ale uczciwie I woleć równie dużo dane prep ewentualny plecy na the serwer. Że sposób I móc czasem bez re-write raport, i próba kontrola nad the pojemność dane bandied wokoło, i, próbować cokolwiek the Serwer można sprawnie pod względem występ.

W tym wypadku, I prawdopodobnie tworzyć widok i wtedy po prostu wybierać od the widok.

Widok być jak wirtualny stół. Ono być naprawdę bardziej jak zaopatrzony zapytanie, z the przewaga że ty móc widok właśnie jak jakaś inny stół. Ono trzymać dane itelf, ale znać gdzie ono od, i the Serwer zbyt więc próbować wszystkie the występ stats od the zasadniczy bajka gdy patrzeć zapytanie plan.

The widok być stół daleko proces, jak tylko tam, używać ono właśnie jak stół. Jakaś aktualizacja dane robić na the faktyczny stół, i faktyczny odbijać w the widok. Być dosyć chłodno rzecz i idealnie te typ skrzynka dokąd the zapytanie trochę wymagać/trochę niezwrotny bezpośrednio.

Pierwszy czas wewnątrz, ty "tworzyć" the widok, natępny zmiana zrobić using "zmieniać"

-- OK, pozwalać the widok…. konwencja móc znacząco i ono być niecodziennie the niecodziennie niecodziennie charakter the typ baza danych przedmiot.
-- W tym wypadku, using the prefiks VW denote WIDOK

TWORZYĆ WIDOK vw_Jobs_Budget_vs_Actual
WYBIERAĆ job_no
          , cost_code_no
          , suma (Labor_Budget) jako labor_budget
          , suma (Material_Budget) Material_Budget
          , suma (Subcontract_Budget) Subcontract_Budget
          , suma (Mileage_Budget) Mileage_Budget
          , suma (Burden_Budget) Burden_Budget
          , suma (Labor_cost) Labor_cost
          , suma (Material_cost) Material_cost
          , suma (Subcontract_cost) Subcontract_cost
          , suma (Mileage_cost) Mileage_cost
          , suma (Burden_cost) Burden_cost
          , suma (total_budget) jako total_budget
          , suma (total_cost) jako total_cost
          , suma (total_budget) - suma (total_cost) jako wariancja

OD (
            wybrany job_no
                      , cost_code_no
                      , skrzynka gdy cost_class_no = (1) wtedy orig_est_dollars inny (0) końcówka jako Labor_Budget
                      , skrzynka gdy cost_class_no = 2 wtedy orig_est_dollars inny (0) końcówka jako Material_Budget
                      , skrzynka gdy cost_class_no = 3 wtedy orig_est_dollars inny (0) końcówka jako Subcontract_Budget
                      , skrzynka gdy cost_class_no = 4 wtedy orig_est_dollars inny (0) końcówka jako Mileage_Budget
                      , skrzynka gdy cost_class_no = 6 wtedy orig_est_dollars inny (0) końcówka jako Burden_Budget
                      , orig_est_dollars jako total_budget
                      , 0.00 jako Labor_cost
                      , 0.00 jako Material_cost
                      , 0.00 jako Subcontract_cost
                      , 0.00 jako Mileage_cost
                      , 0.00 jako Burden_cost
                      , 0.00 jako total_cost
            Od Job_Budgets

            ZJEDNOCZENIE WSZYSTKO

            wybrany job_no
                    , cost_code_no
                    , 0.00 jako Labor_budget
                    , 0.00 jako Material_budget
                    , 0.00 jako Subcontract_budget
                    , 0.00 jako Mileage_budget
                    , 0.00 jako Burden_budget
                    , 0.00 jako total_budget
                    , skrzynka gdy cost_class_no = (1) wtedy kosztować inny (0) końcówka jako Labor_Cost
                    , skrzynka gdy cost_class_no = 2 wtedy kosztować inny (0) końcówka jako Material_Cost
                    , skrzynka gdy cost_class_no = 3 wtedy kosztować inny (0) końcówka jako Subcontract_Cost
                    , skrzynka gdy cost_class_no = 4 wtedy kosztować inny (0) końcówka jako Mileage_Cost
                    , skrzynka gdy cost_class_no = 6 wtedy kosztować inny (0) końcówka jako Burden_Cost
                    , koszt jako total_cost
                     
            Od Job_History
          ) src
GRUPA Job_No, cost_code_no
-- ROZKAZ Job_No, cost_code_no
-- zawierać ROZKAZ OBOK w widok jeśli ty także używać the ODGÓRNY określnik
-- właśnie pamiętać twój swój rozkaz gdy wybierać od the widok.
IŚĆ

-- Teraz gdy zrobić…
-- My móc ono. Nawiązywać do ono właśnie jak jakaś inny stołowy (prawie… my móc, łączyć, używać dokąd, use rozkaz obok, łączny etc etc)

wybiórka * od vw_Jobs_Budget_vs_Actual

-- i źródło być źródło ty teraz używać w twój krystaliczny raport jako twój dane źródło…


Inne rozwiązania  
 
programming4us programming4us