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?
Boa tarde. Estou com o seguinte problema: Preciso retornar um selct da seguinte maneira:
exemplo que não funciona:
select codusur,numnota,codcli,cliente,vltotal,numtransvenda,dev,decode(vlvenda),if(vlvenda > 100 then 1 else 2)
from(
select tb1.codusur,tb1.numnota,tb1.codcli,tb1.cliente,tb1.vltotal,tb1.numtransvenda,DECODE(tb2.VLTOTAL,NULL,0,tb2.VLTOTAL)DEV
from(
select codusur,numnota,pcnfsaid.codcli,pcnfsaid.cliente,pcnfsaid.vltotal,pcnfsaid.numtransvenda
from pcnfsaid where pcnfsaid.dtsaida > '01-OCT-2020' and pcnfsaid.dtcancel is null
)tb1
left outer join
(select DISTINCT VLTOTAL,VW_INTEGRA_DEVOLUCAO_TOTAL.NUMTRANSVENDA from VW_INTEGRA_DEVOLUCAO_TOTAL )tb2
on tb1.NUMTRANSVENDA = tb2.NUMTRANSVENDA
order by numnota
)
Como pode reparar, eu usei um if/else já que não sei a forma correta de usar. Pois com DECODE não consegui usar uma forma de fazer a comparação.
Pois preciso mesmo retornar uns valores fixos. Ex:
Se o valor > 40000, retorna um valor x; Se for maior que 5000 retorna um valor y.
Aguardo a ajuda dos amigos. Grato
boa tarde.
Estou precisando de um Select que retorne uma soma que ao chegar a determinado valor ela reinicie e continue fazendo sucessivamente
select
pedido,
volume,
limite,
SUM(volume) over (order by pedido ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) saldo
from pedidos
group by pedido
o select está retornando assim porém quero que toda vez que chegue ou passe do limite resete o saldo, por exemplo parar no 100 que é o limite e começar um novo saldo
pedido volume limite saldo
1 70 100 70
2 10 100 80
3 20 100 100
4 50 100 150
5 30 100 180
preciso que ele soma o volume enquanto o saldo seja <= que o "limite", quando passar pare de somar e comece outra soma começando do 0, como no exemplo abaixo.
pedido volume limite saldo
1 70 100 70
2 10 100 80
3 20 100 100
4 50 100 50
5 30 100 80
Olá a todos. Criei um procedimento para verificar se um usuário está cadastrado no banco de dados. Utilizo Firebird como BD e componentes Zeos para acessar o banco. Resolvi criar uma query em tempo de execução para fazer a verificação. Não dá nenhum erro, porém, quando digito o nome do usuário no Edit e clico no botão que executa o procedimento, ele dá ''usuário inexistente'', mesmo se o nome do usuário estiver cadastrado no banco.
Segue o código:
procedure Tfrm_login.SpeedButton1Click(Sender: TObject);
var Qry : TZQuery;
begin
Qry:=TZQuery.Create(nil);
Qry.Connection := dm_dados.ZConnection1; //componente de conexão
Qry.SQL.Add('select codigo, nome, acessar, user, pass from clientes');
Qry.Open;
if Qry.Locate('USER',Edit1.Text,[]) then
begin
ShowMessage('usuário cadastrado');
end
else
begin
ShowMessage('usuário inexistente');
Edit1.SetFocus;
end;
FreeAndNil(Qry);
end;
Se alguém puder ajudar agradeço desde já.
Obrigado