grsoft Aprendiz

Registrado: Segunda-Feira, 10 de Abril de 2006 Mensagens: 107
|
Enviada: Ter Mar 12, 2019 8:32 pm Assunto: Dúvida SQL (MYSQL) |
|
|
Boa noite pessoal, estou com uma dúvida numa SQL, estou querendo fazer um RANKING de vendas e estou me deparando com algumas situações que não
estou conseguindo resolver. Vou tentar sem o mais resumido possível.
Tenho as tabelas abaixo:
categprod - categoria de produtos
produtos - todos os produtos cadastrado
movimentoam - todos os movimentos
detmovimentoam - todos os produtos adicionados para cada movimento
senhas - os usuários cadastados
eu queria uma SQL que me desse as seguintes informações:
Soma dos valores vendidos, quantidade total de produtos vendidos, quantidade de movimentos, quantidade de produtos vendidos por cada categoria.
eu fiz uma SQL aqui só q não consegui reproduzir exatamente o que eu quero. fiz duas subquerys mas as mesmas não mostram a soma por usuário.
outra coisa que eu preciso é q a quantidade total de produtos por categoria saio lado a lado e não linha a linha.
Não sei se deu para entender tudo pois ela é bem complexa, pelo menos para mim kkkkkk. Caso alguém tenha alguma dúvida, só perguntar.
SQL:
select LOGIN,SUM(PRECOPROD) as TOTAL, SUM(QUANT) as TOTALQUANT, QUANTMOV as TC, SUM(PRECOPROD)/QUANTMOV as TM, QUANTTMP/QUANTMOV as PVQ,QUANTTMP,CATEG from (
SELECT senhas.LOGIN,
detmovimentoam.PRECOPROD,
detmovimentoam.QUANT,
categprod.NOME as CATEG,
(select count(distinct movimentoam.COD) from movimentoam
inner join detmovimentoam on (detmovimentoam.CODMOV=movimentoam.COD)
inner join produtos on (detmovimentoam.CODPROD=produtos.COD)
inner join categprod ON (produtos.CATEGORIA = CAST(categprod.COD as CHAR(30)))
inner join senhas ON (movimentoam.USUARIO = senhas.LOGIN)
where (movimentoam.DATAHORACONCLUSAO BETWEEN '2019-03-01 00:00:00' and '2019-03-12 23:59:59') and (movimentoam.USUARIO=senhas.LOGIN)
) as QUANTMOV,
(select sum(detmovimentoam.QUANT) from detmovimentoam
inner join movimentoam on (detmovimentoam.CODMOV=movimentoam.COD)
inner join produtos on (detmovimentoam.CODPROD=produtos.COD)
inner join categprod ON (produtos.CATEGORIA = CAST(categprod.COD as CHAR(30)))
inner join senhas ON (movimentoam.USUARIO = senhas.LOGIN)
where (movimentoam.DATAHORACONCLUSAO BETWEEN '2019-03-01 00:00:00' and '2019-03-12 23:59:59') and (movimentoam.USUARIO=senhas.LOGIN)
) as QUANTTMP
FROM detmovimentoam
inner join movimentoam on (detmovimentoam.CODMOV=movimentoam.COD)
inner join produtos on (detmovimentoam.CODPROD=produtos.COD)
inner join senhas ON (movimentoam.USUARIO = senhas.LOGIN)
inner join categprod ON (produtos.CATEGORIA = CAST(categprod.COD as CHAR(30)))
where (movimentoam.DATAHORACONCLUSAO BETWEEN '2019-03-01 00:00:00' and '2019-03-12 23:59:59')
) grsoft
group by LOGIN,CATEG
order by QUANTTMP DESC
segue o modelo que estou tentando criar onde cada figura dessa corresponde a categoria.
 |
|