Estou com um problema e quebrando a cabeça para resolver.
Eu preciso filtrar informação de uma tabela e somar as quantidades do período informado e trazer a quantidade total do mês para esse produto.
Segue um exemplo de como eu queria que viesse.
Ao filtrar o período do mês 01/01/2020 a 31/12/2020 ele deveria trazer para mim a seguinte informação.
Item - MES - Quantidade
PARAFUSO - JANEIRO - 40
PARAFUSO - FEVEREIRO - 20
PARAFUSO - MARÇO - 30
.....
PARAFUSO - DEZEMBRO- 10
Dentro do período informado ele trás a quantidade total do mês, porém, essa quantidade eu faço a soma pelo SUM e como eu preciso trazer o mês falar qual o mes e quantidade, ele trás mais linhas do mesmo mês, isso porque, dentro do mês ele possui registros de diversas datas, e o group by quando vê as datas diferentes não agrupam e só agrupa o que for data igual.
Como posso resolver isso? Alguém tem alguma ideia?
Bom dia! Pessoal, estou muito precisando da ajuda dos Srs. Tenho uma tabela, onde a cada minuto, meu script insere dados referente a consulta SNMP de determinado equipamento. Tenho uma pagina, onde os dados que a consulta coletou diferente do dado atual, é mostrado na tabela. O que acontece é o seguinte, estou utilizando o GROUP BY para selecionar apenas os dados diferentes da coluna 'canalEquipamento', mas, o problema é que, se eu estiver com o Canal registrado na tabela em 5540, realizar a alteração para o 5500, e depois voltar para o 5540, minha consulta não retorna o dado duplicado. Não posso simplesmente mostrar todas as consultas na tabela, pois como eu disse, a inserção de dados na tabela é realizada a cada minuto, dessa forma, iria ter vários dados repetidos e uma consulta enorme. Então, o que eu preciso fazer, é que: a consulta retorne os dados , que o último não seja repetido, por exemplo: Tenho do registro 1 até 50, a coluna Canal está registrada em 5500, no registro 51 até o 500, o canal mudou para 5540, e do 501 até o 700, o canal voltou para o 5500. O que eu precisaria que a consulta retornasse, seria por exemplo:
Segue a imagem do exemplo do problema atual, de como a query está retornando no momento (ela está listando apenas o primeiro registro do canal, se repetir o canal, ele não aparece mais).
QUERY: SELECT ip_equipamento, canalEquipamento, lastSNMP FROM equipamentoSNMP WHERE idEquipamento='317' GROUP BY canalEquipamento ORDER BY idConsulta DESC
PRECISO DESSE RESULTADO:
Vendedor | Total clientes vendidos | total produtos diferentes vendidos POR CLIENTE
JOAO | 3 | 3 *
LUIZ | 1 | 1
*O total é 3 porque eu preciso considerar a venda do produto por cliente, e não somente por vendedor.
Quando eu utilizo o group by ele considera apenas o total de produtos vendidos por VENDEDOR,
e não considera a venda para clientes diferentes.
SELECT distinct vendedor, count(distinct cliente), count(distinct produto)
FROM FATO_VENDAS a
GROUP BY vendedor
Pessoal, me deparei com um problema.
Tenho uma Tabela, onde fica armazenada as transações dos clientes.
Cada transação tem vários registros com o campo STATUS.
Preciso fazer um MAX, para pegar a ultima transação por data, e assim saber qual foi o status da mesma.
Mas ao utilizar o MAX e selecionar o campo STATUS ele me traz todos os registro, porque o mesmo não pode agrupar por status, por conter valores diferentes.
É possível criar alguma forma de selecionar no meu caso a ultima transação por data (MAX) e trazer o campo status?
Seja com alguma procedure, ou outra função do ORACLE.
Me deparei com um problema aqui que acredito que seja bem simples para voces. Estou aqui precisando agrupar dados com a maior data de vendas para um cliente Numa coluna para todas as linhas do cliente (registro a registro das notas). Tambem preciso fazer algumas operacoes de total para disponibilizar um SCRIPT SQL sql para ser consumido por uma ferramenta analitica de BI e foi especificado exatamente como esta na planilha. Para facilitar criei os cenários. Tem os scripts de criacao da tabela e de insert e os resultados esperados nas colunas calculadas pelo sql. Espero que a documentação esteja boa para o caso de uso e que voces possam me ajudar. POde ser didatico para quem da aulas de PL SQL.
Grato
Att
Paulo
PS: como nao aceitou a planilha, escrevo abaixo:
--SCRIPT DE CRIACAO TABELA ORACLE
CREATE TABLE T_VENDAS
(DATA_VENDA DATE,
COD_CLI NUMBER (10),
CLIENTE VARCHAR2(10),
NUM_NF VARCHAR(10),
ITEM VARCHAR2(20),
QTDE NUMBER (10,2),
VL_TOT_ITEM NUMBER (10,2),
VL_UNIT NUMBER (10,2));
--INSERTS
INSERT INTO T_VENDAS VALUES('05-Jan-2019',15,'JOAO','20','MESA',1,200,200);
INSERT INTO T_VENDAS VALUES('05-Jan-2019',15,'JOAO','20','CADEIRA',4,240,60);
INSERT INTO T_VENDAS VALUES('21-Jan-2019',15,'JOAO','66','BANCO',2,240,120);
INSERT INTO T_VENDAS VALUES('08-Feb-2019',15,'JOAO','102','GELADEIRA',1,600,600);
INSERT INTO T_VENDAS VALUES('07-Mar-2019',15,'JOAO','145','ARMARIO',1,450,450);
INSERT INTO T_VENDAS VALUES('05-Jan-2019',20,'MARIA','28','SOFA',1,750,750);
INSERT INTO T_VENDAS VALUES('05-Jan-2019',20,'MARIA','28','TAPETE',2,280,140);
INSERT INTO T_VENDAS VALUES('21-Jan-2019',20,'MARIA','72','CORTINA',2,160,80);
INSERT INTO T_VENDAS VALUES('08-Feb-2019',20,'MARIA','120','CAMA',1,400,400);
INSERT INTO T_VENDAS VALUES('17-Feb-2019',20,'MARIA','151','COLCHAO',1,500,500);
CENARIOS (DADOS INSERIDOS NA TABELA T_VENDAS - COLUNAS DO EXCEL ABAIXO: B, C, D, E, F, G, H, I)
COLUNAS CALCULADAS ESPERADAS NO SCRIPT SQL ALEM DAS COLUNAS JA EXISTENTES NA TABELA