Junção Left outer join e count
Bom dia!
Tenho estas duas Querys:
select IArv_CodPN,sum(iarv_qtde)as QtdeComp from ItemArvore
where IArv_CodPN =''552600283301''
group by IArv_CodPN
order by IArv_CodPN
select distinct pla_codpn,Cen_Descricao,Cen_PNdoCliente, Pla_CodCelula from Placas
left outer join AcbCentr on cen_codpn = Pla_CodPN
where pla_codpn in(select distinct pla_codpn from AcbPlacas
where Pla_CodPNInicial =''552600283301'')
order by Pla_CodPN
Como sou novo em SQL não sei se pode fazer a junção, eu tentei e deu um erro, como mostra abaixo e não sei como resolver.
select distinct pla_codpn,Cen_Descricao,Cen_PNdoCliente, Pla_CodCelulaSMD, sum(iarv_qtde)as QtdeComp from Placas
left outer join AcbCentr on cen_codpn = Pla_CodPN
left outer join AcbItemArvore on IArv_CodPN = Pla_CodPNInicial
where pla_codpn in(select distinct pla_codpn from AcbPlacas
where Pla_CodPNInicial =''552600283301'')
order by Pla_CodPNInicial
erro:
Msg 8120, Level 16, State 1, Line 12
Column ''AcbPlacas.Pla_CodPN'' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Msg 145, Level 15, State 1, Line 12
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
Tenho estas duas Querys:
select IArv_CodPN,sum(iarv_qtde)as QtdeComp from ItemArvore
where IArv_CodPN =''552600283301''
group by IArv_CodPN
order by IArv_CodPN
select distinct pla_codpn,Cen_Descricao,Cen_PNdoCliente, Pla_CodCelula from Placas
left outer join AcbCentr on cen_codpn = Pla_CodPN
where pla_codpn in(select distinct pla_codpn from AcbPlacas
where Pla_CodPNInicial =''552600283301'')
order by Pla_CodPN
Como sou novo em SQL não sei se pode fazer a junção, eu tentei e deu um erro, como mostra abaixo e não sei como resolver.
select distinct pla_codpn,Cen_Descricao,Cen_PNdoCliente, Pla_CodCelulaSMD, sum(iarv_qtde)as QtdeComp from Placas
left outer join AcbCentr on cen_codpn = Pla_CodPN
left outer join AcbItemArvore on IArv_CodPN = Pla_CodPNInicial
where pla_codpn in(select distinct pla_codpn from AcbPlacas
where Pla_CodPNInicial =''552600283301'')
order by Pla_CodPNInicial
erro:
Msg 8120, Level 16, State 1, Line 12
Column ''AcbPlacas.Pla_CodPN'' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
Msg 145, Level 15, State 1, Line 12
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
Vagner
Curtidas 0
Melhor post
Emerson Nascimento
17/01/2023
quando usadas as funções de agregação (sum, count, avg, max. min, etc...) use GROUP BY em vez de usar DISTINCT
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
select pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD, sum(aia.iarv_qtde) as QtdeComp from Placas pl -- aqui é Placas mesmo ? left outer join AcbCentr acen on acen.cen_codpn = pl.Pla_CodPN left outer join AcbItemArvore aia on aia.IArv_CodPN = pl.Pla_CodPNInicial where pl.pla_codpn in ( select distinct pla_codpn from AcbPlacas -- aqui é AcbPlacas mesmo ? where Pla_CodPNInicial = '552600283301' ) group by pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD order by Pla_CodPNInicial
GOSTEI 1
Mais Respostas
Vagner
17/01/2023
quando usadas as funções de agregação (sum, count, avg, max. min, etc...) use GROUP BY em vez de usar DISTINCT
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
select pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD, sum(aia.iarv_qtde) as QtdeComp from Placas pl -- aqui é Placas mesmo ? left outer join AcbCentr acen on acen.cen_codpn = pl.Pla_CodPN left outer join AcbItemArvore aia on aia.IArv_CodPN = pl.Pla_CodPNInicial where pl.pla_codpn in ( select distinct pla_codpn from AcbPlacas -- aqui é AcbPlacas mesmo ? where Pla_CodPNInicial = '552600283301' ) group by pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD order by Pla_CodPNInicial
GOSTEI 0
Vagner
17/01/2023
quando usadas as funções de agregação (sum, count, avg, max. min, etc...) use GROUP BY em vez de usar DISTINCT
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
select pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD, sum(aia.iarv_qtde) as QtdeComp from Placas pl -- aqui é Placas mesmo ? left outer join AcbCentr acen on acen.cen_codpn = pl.Pla_CodPN left outer join AcbItemArvore aia on aia.IArv_CodPN = pl.Pla_CodPNInicial where pl.pla_codpn in ( select distinct pla_codpn from AcbPlacas -- aqui é AcbPlacas mesmo ? where Pla_CodPNInicial = '552600283301' ) group by pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD order by Pla_CodPNInicial
GOSTEI 0
Vagner
17/01/2023
quando usadas as funções de agregação (sum, count, avg, max. min, etc...) use GROUP BY em vez de usar DISTINCT
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
na primeira parte você cita as tabelas ItemArvore, Placas e AcbPlacas.
Na segunda parte não tem mais a tabela ItemArvore; agora é AcbItemArvore.
Tentei adivinhar algumas coisas e saiu a instrução abaixo:
select pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD, sum(aia.iarv_qtde) as QtdeComp from Placas pl -- aqui é Placas mesmo ? left outer join AcbCentr acen on acen.cen_codpn = pl.Pla_CodPN left outer join AcbItemArvore aia on aia.IArv_CodPN = pl.Pla_CodPNInicial where pl.pla_codpn in ( select distinct pla_codpn from AcbPlacas -- aqui é AcbPlacas mesmo ? where Pla_CodPNInicial = '552600283301' ) group by pl.pla_codpn, acen.Cen_Descricao, acen.Cen_PNdoCliente, pl.Pla_CodCelulaSMD order by Pla_CodPNInicial
Emerson Funcionou a sua sugestão!!! muito obrigado!!
O campo realmente é placas, eu havia inserido um acb por engano na frente da descrição!
muito obrigado
GOSTEI 0