Duvida para uniao de consultas
Qdo vc iguala uma query ex.
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?
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
Curtidas 0
Respostas
Emerson Nascimento
13/10/2020
se eu entendi, deve ser algo assim:
ou ainda:
na verdade poder haver outras formas, mas seria necessário mais informações.
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.
GOSTEI 0
Mario Castilho
13/10/2020
Como poderia unir via left join 3 tabelas, nessa query?
---------------------------------------
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)
---------------------------------------
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)
GOSTEI 0
Emerson Nascimento
13/10/2020
veja se é algo assim...
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.QUANTIDADEGOSTEI 0