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…