Subconsultas SQL
Olá a todos!
Preciso montar duas subconsultas. Na primeira, preciso exibir para cada carro a quantidade vendida e a quantidade em estoque. Na segunda, preciso listar quantos modelos de carros foram vendidos por cada revendedora. As tabelas utilizadas são:
Automoveis Negocios Garagens
codigo codigo codigo
ano ano ano
modelo cgc cgc
fabricante preco quantidade
1º Select:
Select a.modelo, a.ano,
(select count(*) from negocios n where n.codigo = a.codigo and n.ano = a.ano) QtdeVendida,
(select sum(quantidade) from garagens g where g.codigo = a.codigo and g.ano = a.ano) QtdeEstoque
From automoveis a
order by a.modelo, a.ano
O problema nesta consulta é que alguns valores da coluna QtdeEstoque aparecem com valor NULL, o que significa que não há um relacionando da tabela automovel com a tabela garagens. Como corrigir isso?
2º Select:
select n.cgc, (select r.nome from revendedoras r where n.cgc=r.cgc) as Revendedora,
(select count(*) from automoveis a where n.codigo=a.codigo and n.ano=a.ano) as QtdCarros
from negocios n
order by n.cgc
Nesta consulta, os registros da coluna QtdCarros aparecem com valor 1. Sei que está incorreto, porém não consigo acertar a segunda subconsulta interna.
Estes dois problemas fazem parte de um trabalho de banco de dados que preciso entregar.
Agradeço pela ajuda.
Preciso montar duas subconsultas. Na primeira, preciso exibir para cada carro a quantidade vendida e a quantidade em estoque. Na segunda, preciso listar quantos modelos de carros foram vendidos por cada revendedora. As tabelas utilizadas são:
Automoveis Negocios Garagens
codigo codigo codigo
ano ano ano
modelo cgc cgc
fabricante preco quantidade
1º Select:
Select a.modelo, a.ano,
(select count(*) from negocios n where n.codigo = a.codigo and n.ano = a.ano) QtdeVendida,
(select sum(quantidade) from garagens g where g.codigo = a.codigo and g.ano = a.ano) QtdeEstoque
From automoveis a
order by a.modelo, a.ano
O problema nesta consulta é que alguns valores da coluna QtdeEstoque aparecem com valor NULL, o que significa que não há um relacionando da tabela automovel com a tabela garagens. Como corrigir isso?
2º Select:
select n.cgc, (select r.nome from revendedoras r where n.cgc=r.cgc) as Revendedora,
(select count(*) from automoveis a where n.codigo=a.codigo and n.ano=a.ano) as QtdCarros
from negocios n
order by n.cgc
Nesta consulta, os registros da coluna QtdCarros aparecem com valor 1. Sei que está incorreto, porém não consigo acertar a segunda subconsulta interna.
Estes dois problemas fazem parte de um trabalho de banco de dados que preciso entregar.
Agradeço pela ajuda.
Simone Grandini
Curtidas 0
Respostas
Marco Silva
29/06/2013
Olá, Simone Grandini, tudo bem?
Não sei se vai dar certo, mas tente o seguinte no primeiro select:
Já no segundo select, tente isto:
Espero ter ajudado...
T++
Não sei se vai dar certo, mas tente o seguinte no primeiro select:
Select a.modelo, a.ano, (select count(*) from negocios n where n.codigo = a.codigo and n.ano = a.ano) QtdeVendida, (select sum(quantidade) from garagens g where g.codigo = a.codigo and g.ano = a.ano) QtdeEstoque From automoveis a order by a.modelo, a.ano
Já no segundo select, tente isto:
select n.cgc, (select r.nome from revendedoras r where n.cgc=r.cgc) as Revendedora, (select count(*) from automoveis a where n.codigo=a.codigo and n.ano=a.ano group by a.codigo) as QtdCarros from negocios n order by n.cgc
Espero ter ajudado...
T++
GOSTEI 0
Marco Silva
29/06/2013
Desculpa, não alterei o primeiro select. Segue a correção:
Acho que agora foi.
T++
Select a.modelo, a.ano, (select count(*) from negocios n where n.codigo = a.codigo and n.ano = a.ano group by n.codigo) QtdeVendida, (select sum(quantidade) from garagens g where g.codigo = a.codigo and g.ano = a.ano group by g.codigo) QtdeEstoque From automoveis a order by a.modelo, a.ano
Acho que agora foi.
T++
GOSTEI 0