Pergunta : Exteriores cheios juntam-se para o CR

Olá! peritos,

I am que tenta começ dados de 2 tabelas que têm o relacionamento à exceção da coluna - job_no do No. 1 a 1. A seguinte indicação recupera dados muito limitados ou nem um em algumas colunas: o

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

FROM EXTERIOR JUNTA-SE a job_budgets do job_history
ON .job_no = job_history.job_no

The que lig a coluna “job_no” contem muitas fileiras separadas para cada número original do job_no - contêm os dados de custo periódicos do trabalho incorporados sobre o tempo e eu não posso ajudar mas pensar que este está causando algum de meu problema - mas eu sou um principiante real na coluna job_budgets.orig_est_dollars de SQL.

The contenho custos incluídos no orçamento para uma coluna job_history.cost da construção project.
The contenho os custos reais para um projeto. Estes custos (em ambas as tabelas) são divididos pelas categorias (1 - 26) na coluna: cost_code_no (em ambas as tabelas) e classific como o material, o trabalho, ou o submarino pelo índice numérico do cost_class_no da coluna (1.2.3). Eu preciso de estoirar estas categorias em meu relatório para comparar custos reais aos custos incluídos no orçamento. Eu preciso simplesmente uma pergunta que puxe todos os dados destas duas tabelas nestas colunas assim que eu posso funcionar relatórios nela.
class= do

Resposta : Exteriores cheios juntam-se para o CR

Você poderia, mas honesta eu prefiro fazer tanta preparação dos dados quanto a parte traseira possível no usuário. Que maneira que eu posso manipular às vezes sem ter que reescrever relatórios, e tentativa para tomar o controle sobre o volume de dados que estão sendo passados aproximadamente, e, tentando se aproveitar de qualquer coisa o usuário pôde poder oferecer nos termos do desempenho.

Neste caso, eu criaria provavelmente uma vista e então selecioná-la-ia simplesmente da vista.

Uma vista é como uma tabela virtual. É realmente mais como uma pergunta armazenada, com a vantagem a que você pode referir uma vista apenas como toda a outra tabela. Não prende o itelf dos dados, mas sabe onde começ o de, e o usuário faz demasiado assim que tentará usar todo o stats do desempenho dos contos subjacentes ao olhar plantas da pergunta.

Criar a vista é uma vez fora uma process, uma vez que lá, usa-o apenas como uma tabela. Todas as atualizações aos dados são feitas nas tabelas reais, e refletidas instantaneamente na vista. São coisas consideravelmente frescas e serido idealmente a estes tipos de casos onde a pergunta é um bocado envolvido/bocado incómodo para se usar diretamente.

Primeira vez dentro, você “cria” a vista, mudanças subseqüentes é feito using “altera-se”

-- APROVAR, deixar para criar a vista…. as convenções de nomeação podem ser importantes e não é raro encontrar poucos poucos caráteres refletir o tipo de objeto de base de dados.
-- Neste caso, using a VW do prefixo para denotar a VISTA

CRIAR A VISTA vw_Jobs_Budget_vs_Atual COMO
SELECIONAR o job_no
          , cost_code_no
          , soma (Labor_Budget) como o labor_budget
          , soma (Material_Budget) Material_Budget
          , soma (Subcontract_Budget) Subcontract_Budget
          , soma (Mileage_Budget) Mileage_Budget
          , soma (Burden_Budget) Burden_Budget
          , soma (Labor_cost) Labor_cost
          , soma (Material_cost) Material_cost
          , soma (Subcontract_cost) Subcontract_cost
          , soma (Mileage_cost) Mileage_cost
          , soma (Burden_cost) Burden_cost
          , soma (total_budget) como o total_budget
          , soma (total_cost) como o total_cost
          , soma (total_budget) - soma (total_cost) como a variação

DE (
            selecionar o job_no
                      , cost_code_no
                      , caso quando cost_class_no = então orig_est_dollars 1 mais 0 extremidades como Labor_Budget
                      , caso quando cost_class_no = 2 então orig_est_dollars mais 0 extremidades como Material_Budget
                      , caso quando cost_class_no = 3 então orig_est_dollars mais 0 extremidades como Subcontract_Budget
                      , caso quando cost_class_no = 4 então orig_est_dollars mais 0 extremidades como Mileage_Budget
                      , caso quando cost_class_no = 6 então orig_est_dollars mais 0 extremidades como Burden_Budget
                      , orig_est_dollars como o total_budget
                      , 0.00 como Labor_cost
                      , 0.00 como Material_cost
                      , 0.00 como Subcontract_cost
                      , 0.00 como Mileage_cost
                      , 0.00 como Burden_cost
                      , 0.00 como o total_cost
            De Job_Budgets

            UNIÃO TODA

            selecionar o job_no
                    , cost_code_no
                    , 0.00 como Labor_budget
                    , 0.00 como Material_budget
                    , 0.00 como Subcontract_budget
                    , 0.00 como Mileage_budget
                    , 0.00 como Burden_budget
                    , 0.00 como o total_budget
                    , caso quando cost_class_no = 1 custado então mais 0 extremidades como Labor_Cost
                    , caso quando cost_class_no = 2 custados então mais 0 extremidades como Material_Cost
                    , caso quando cost_class_no = 3 custados então mais 0 extremidades como Subcontract_Cost
                    , caso quando cost_class_no = 4 custados então mais 0 extremidades como Mileage_Cost
                    , caso quando cost_class_no = 6 custados então mais 0 extremidades como Burden_Cost
                    , custo como o total_cost
                     
            De Job_History
          ) src
GRUPO por Job_No, cost_code_no
-- ORDEM por Job_No, cost_code_no
-- não incluir a ORDEM PERTO em uma vista a menos que você igualmente usar o qualificador SUPERIOR
-- apenas recordar fazer sua própria ordem por ao selecionar da vista.
IR

-- Agora que foi feito…
-- Nós podemos começar usá-la. Referindo ela apenas como alguma outra tabela (bonita muito… nós podemos selecionar, nos juntamos, nos usamos a onde, ordem do uso perto, etc. agregado etc.)

selecionar * de vw_Jobs_Budget_vs_Atual

-- e aquele é o que você se usa agora em seus relatórios de cristal como sua origem de dados…


Outras soluções  
 
programming4us programming4us