Duvida para uniao de consultas
13/10/2020
0
dia balanca = dia abastecimento
tenho moagem dia 30/09 porem nao tenho abastecimento no dia 30/09
como eu faço para query trazer a moagem do dia 30/09?
Qual é a melhor forma de fazer a união de 2 tabelas diferentes, porém com campos iguais para efetuar a ligação?
Mario Castilho
Posts
13/10/2020
Emerson Nascimento
select campoa, campob, campoc, campod, diabalanca as dtmov from tabela1 where diabalanca = '30/09' union all select campoa, campob, campoc, campod, diaabastecimento from tabela2 where diaabastecimento = '30/09'
ou ainda:
select * from ( select campoa, campob, campoc, campod, diabalanca as dtmov from tabela1 [where ] union all select campoa, campob, campoc, campod, diaabastecimento from tabela2 [where ] ) T where T.dtmov = '30/09'
na verdade poder haver outras formas, mas seria necessário mais informações.
16/10/2020
Mario Castilho
---------------------------------------
SELECT A.MES_ANO,
A.COD_EQUIPAMENTO,
A.VIDA_KM_HR,
A.EQUIPAMENTO,
A. RESPONSAVEL,
A.QUANTIDADE_DIESEL,
B.MOAGEM_PRODUCAO,
-- A.DATA,
(SELECT SUM(X.QUANTIDADE) AS QUANTIDADE
FROM TAB_OFI_ABASTEC X
WHERE X.COD_PROPRIETARIO in ('10','1021')
AND X.COD_MATERIAL = '51405'
AND X.COD_CENTRO_CUSTO in( '3121','3120','3102')
AND TRIM(X.COD_EQUIPAMENTO) = TRIM(A.COD_EQUIPAMENTO)
AND TRIM(X.MES_ANO(+)) = TRIM(A.MES_ANO)
) OLEO_HIDRAULICO
FROM (SELECT MES_ANO AS MES_ANO,
TO_CHAR(DATA, 'DD/MM/YYYY') AS DATA,
TRIM(COD_EQUIPAMENTO) AS COD_EQUIPAMENTO,
TRIM(SUBSTR(EQUIPAMENTO, 10, 20)) AS EQUIPAMENTO,
SUM(QUANTIDADE) AS QUANTIDADE_DIESEL,
SUM(VIDA_KM_HR) AS VIDA_KM_HR,
RESPONSAVEL
FROM TAB_OFI_ABASTEC
WHERE COD_PROPRIETARIO in ('10','1021')
AND COD_MATERIAL IN ('1537', '235531', '225608')
AND MES_ANO IN ('01/2020',
'02/2020',
'03/2020',
'04/2020',
'05/2020',
'06/2020',
'07/2020',
'08/2020',
'09/2020',
'10/2020',
'11/2020',
'12/2020')
AND COD_CENTRO_CUSTO IN ('3121','3102','3120')
GROUP BY MES_ANO, COD_EQUIPAMENTO, EQUIPAMENTO, RESPONSAVEL, TO_CHAR(DATA, 'DD/MM/YYYY')) A,
(SELECT MES AS MES,
TRIM(COLHEDORA1) AS COLHEDORA1,
SUM(LIQUI) AS MOAGEM_PRODUCAO,
TO_CHAR(CONT_DIA_BALANCA, 'DD/MM/YYYY') AS CONT_DIA_BALANCA
FROM TAB_FRC_ENTRADa_CLu
WHERE ENT_COD_EMPR IN ('10')
GROUP BY MES, COLHEDORA1, TO_CHAR(CONT_DIA_BALANCA, 'DD/MM/YYYY')) B
where TRIM(a.MES_ANO) = TRIM(b.MES)
and trim(a.data)=b.cont_dia_balanca(+)
AND TRIM(A.COD_EQUIPAMENTO) =TRIM(B.COLHEDORA1)
16/10/2020
Emerson Nascimento
SELECT A.MES_ANO, A.COD_EQUIPAMENTO, SUM(A.VIDA_KM_HR) AS VIDA_KM_HR, TRIM(SUBSTR(A.EQUIPAMENTO, 10, 20)) AS EQUIPAMENTO, A.RESPONSAVEL, SUM(A.QUANTIDADE) AS QUANTIDADE_DIESEL, B.MOAGEM_PRODUCAO, -- TO_CHAR(A.DATA, 'DD/MM/YYYY') AS DATA, C.QUANTIDADE AS OLEO_HIDRAULICO FROM TAB_OFI_ABASTEC A LEFT JOIN ( SELECT MES, COLHEDORA1, TO_CHAR(CONT_DIA_BALANCA, 'DD/MM/YYYY') AS CONT_DIA_BALANCA, SUM(LIQUI) AS MOAGEM_PRODUCAO FROM TAB_FRC_ENTRADa_CLu WHERE ENT_COD_EMPR IN ('10') GROUP BY MES, COLHEDORA1, TO_CHAR(CONT_DIA_BALANCA, 'DD/MM/YYYY') ) B ON TRIM(B.MES) = TRIM(A.MES_ANO) AND TRIM(B.COLHEDORA1) = TRIM(A.COD_EQUIPAMENTO) AND TRIM(B.CONT_DIA_BALANCA) = TRIM(A.DATA) LEFT JOIN ( SELECT COD_EQUIPAMENTO MES_ANO, SUM(QUANTIDADE) AS QUANTIDADE FROM TAB_OFI_ABASTEC WHERE COD_PROPRIETARIO IN ('10','1021') AND COD_MATERIAL = '51405' AND COD_CENTRO_CUSTO IN ( '3121','3120','3102') GROUP BY COD_EQUIPAMENTO, MES_ANO ) C ON TRIM(C.COD_EQUIPAMENTO) = TRIM(A.COD_EQUIPAMENTO) AND TRIM(C.MES_ANO) = TRIM(A.MES_ANO) WHERE A.COD_PROPRIETARIO in ('10','1021') AND A.COD_MATERIAL IN ('1537', '235531', '225608') AND RIGHT(TRIM(A.MES_ANO),4) = '2020' -- ANO = 2020 -- AND A.MES_ANO LIKE '%/2020' -- ANO = 2020 AND A.COD_CENTRO_CUSTO IN ('3121','3102','3120') GROUP BY A.MES_ANO, A.COD_EQUIPAMENTO, A.EQUIPAMENTO, A.RESPONSAVEL, TO_CHAR(A.DATA, 'DD/MM/YYYY'), B.MOAGEM_PRODUCAO, C.QUANTIDADE
Clique aqui para fazer login e interagir na Comunidade :)