Login
Estamos no Facebook
Buscar
Quem está conectado
Há 34 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 34 Visitantes :: 2 Motores de buscaNenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Karaoke feito em FoxPro 2.6
23/5/2012, 11:45 por fabiomacarrao
Bom dia a todos. Desenvolvi um programa em FoxPro for windows 2.6 para karaoke. tenho mais de 2700 …
Comentários: 3
Estatísticas
Temos 4048 usuários registradosO último usuário registrado atende pelo nome de fabiomacarrao
Os nossos membros postaram um total de 14433 mensagens em 2047 assuntos
SQL Group by - Filtrar último registro de cada grupo !
Página 1 de 1 • Compartilhe •
SQL Group by - Filtrar último registro de cada grupo !
-
Surgiu uma dúvida, e gostaria que algum dos foxers de plantão me ajudassem.
É SQL, mas o código é VFP, por isso estou postando aqui.
Enfim, estou precisando obter, num "Group By", a seguinte solução:
1. Tabela "Sem" Group By
-------------------------------------------------------------
DATA | PRODUTO | SALDO (DIA ) | SALDO ACUMULADO
-------------------------------------------------------------
01/11/2011 SUCO 10 10
01/11/2011 SUCO -5 5
------------------------------------------------------------
2. Tabela "Com" Group By ordenada por "PRODUTO","DATA"
-------------------------------------------------------------
DATA | PRODUTO | SALDO (DIA ) | SALDO ACUMULADO
-------------------------------------------------------------
01/11/2011 SUCO 5 5
-------------------------------------------------------------
O "x" da questão é no "SALDO ACUMULADO". No Group By, o registro
tem que ser o último valor do "SALDO ACUMULADO" dentro da "DATA"
que está sendo agrupada. Tentei o "MAX()" mas ele me retorna o
"MAIOR" valor do bloco, e não, o "ÚLTIMO".
Não sei se eu deveria usar "HAVING" nesse caso... alguma luz?
Abraço.
-
Surgiu uma dúvida, e gostaria que algum dos foxers de plantão me ajudassem.
É SQL, mas o código é VFP, por isso estou postando aqui.
Enfim, estou precisando obter, num "Group By", a seguinte solução:
1. Tabela "Sem" Group By
-------------------------------------------------------------
DATA | PRODUTO | SALDO (DIA ) | SALDO ACUMULADO
-------------------------------------------------------------
01/11/2011 SUCO 10 10
01/11/2011 SUCO -5 5
------------------------------------------------------------
2. Tabela "Com" Group By ordenada por "PRODUTO","DATA"
-------------------------------------------------------------
DATA | PRODUTO | SALDO (DIA ) | SALDO ACUMULADO
-------------------------------------------------------------
01/11/2011 SUCO 5 5
-------------------------------------------------------------
O "x" da questão é no "SALDO ACUMULADO". No Group By, o registro
tem que ser o último valor do "SALDO ACUMULADO" dentro da "DATA"
que está sendo agrupada. Tentei o "MAX()" mas ele me retorna o
"MAIOR" valor do bloco, e não, o "ÚLTIMO".
Não sei se eu deveria usar "HAVING" nesse caso... alguma luz?
Abraço.
-

halisson- Participante Regular

Re: SQL Group by - Filtrar último registro de cada grupo !
Seria possivel colocar uma coluna chave de codigo sequencial, ai ficaria mais do jeito
Aparentement usar Count traria a Coluna Saldo da Ultima Coluna
Aparentement usar Count traria a Coluna Saldo da Ultima Coluna
- Código:
CLEAR
CLEAR ALL
SET DATE TO BRITISH
CREATE CURSOR teste ( codigo c(5) , data d(8) , Saldo n(12,2))
INSERT INTO teste ( codigo , data , saldo );
VALUES ('00001' , DATE() - 1 , -5 )
INSERT INTO teste ( codigo , data , saldo );
VALUES ('00002' , DATE(), 10)
INSERT INTO teste ( codigo , data , saldo );
VALUES ('00003' , DATE(), 5)
INSERT INTO teste ( codigo , data , saldo );
VALUES ('00004' , DATE(), 3)
parametro = DATE()
SET ENGINEBEHAVIOR 70
SELECT codigo, data , saldo ;
FROM teste;
WHERE data = parametro;
INTO CURSOR aa READWRITE
SELECT codigo, saldo, COUNT(*) as registros ;
FROM aa ;
GROUP BY data ;
INTO CURSOR ab READWRITE
IF _tally =< 0
=MESSAGEBOX('Não Foram Encontrados Registros para esse Periodo')
RETURN 0
ENDIF
SELECT saldo ;
FROM ab ;
WHERE !EMPTY(codigo) ;
INTO CURSOR ac READWRITE
BROWSE
m@r<3|o- Participante Assíduo

Re: SQL Group by - Filtrar último registro de cada grupo !
-
Exatamente m@r<3|o,
a solução é usar o "COUNT(*)".
Obrigado.
Abraço.
-
Exatamente m@r<3|o,
a solução é usar o "COUNT(*)".
Obrigado.
Abraço.
-

halisson- Participante Regular

Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início
» Modificar TitleBar e Icone do Executavel.
» Criar atalho, SYS(2020) e Desktop
» Karaoke feito em FoxPro 2.6
» Como separar caminho do diretório?
» Utilizando PHPMailer
» Programador em Visual Foxpro
» Link PHP (Dúvida)
» Fundo do PROJETO Transparente??
» Minimizar , Maximizar e Restaurar
» Pivot Table no sql server
» Scroll EditBox Automatico
» Select Nexval do FoxPro no OracleXE
» Colocar gif na caixa do MESSAGEBOX ()
» Comparar Versões do programa.exe
» Menu lateral
» Fazer com que a tela do sistema assume a janela principal
» Trocar Palavra no Sistema
» invocar Dll em Xbase
» Fechar Porta Aberta