Guest Wagner Bazarin Postado Agosto 19, 2004 Denunciar Share Postado Agosto 19, 2004 Pessoal:Me desculpem se este não e' o lugar correto para esta pergunta, mas estou tentando construir um SQL em uma tabela a mais de dois dias sem sucesso.A minha tabela tem 4 camposExp DataIni Lug Tipo Dec 1 1/7/2004 1 1 11 1 1/7/2004 1 2 22 1 1/7/2004 1 3 33 1 1/7/2004 1 4 44 1 1/7/2004 1 5 55 1 1/7/2004 1 6 66 1 1/7/2004 1 7 77 1 1/7/2004 1 8 88 1 1/7/2004 1 9 99 1 3/7/2004 1 3 101 1 5/7/2004 1 6 102 1 5/7/2004 1 9 103Eu quero selecionar todos as Exp =1, Lug =1 e DataIni <= 5/7/2004, mas que o Tipo seja unico e de maior data. Como exemplo a minha seleçao traria o seguinte resul-tado:Exp DataIni Lug Tipo Dec 1 1/7/2004 1 1 11 1 1/7/2004 1 2 22 1 3/7/2004 1 3 101 1 1/7/2004 1 4 44 1 1/7/2004 1 5 55 1 5/7/2004 1 6 102 1 1/7/2004 1 7 77 1 1/7/2004 1 8 88 1 5/7/2004 1 9 103já tentei de tudo sem nenhum sucesso. Utilizando Select Max(DataIni), Tipo from tabela where Exp=1 and Lug=1 and DataIni <=Cast('1/7/2004' as date) group by Tipo me traz parte do resultado, mas não consiguo trazer todos os campos.Desculpem a minha pouca experiëncia em SQL, mas a ajuda dos amigos seria muito importante.Abraços,Wagner Bazarinwagner@bazarin.com Link para o comentário Compartilhar em outros sites More sharing options...
0 gladiador Postado Agosto 20, 2004 Denunciar Share Postado Agosto 20, 2004 /* do jeito que você quer resgatar seria isso : select max(dataini) from tabela where tabela.exp = '1' and tabela.dataini <= '05.01.2004' */ Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Guest Postado Agosto 20, 2004 Denunciar Share Postado Agosto 20, 2004 Obrigado pela resposta, mas este SQL devolve a maior dataini, e o que eu preciso é todos os 'Tipo' (de 1 a 9) que tenham a maior data. Veja que tenho tipo 3, 6, e 9 duplicados, e preciso somente um de cada, mas os de maiores datas.Abraços,Wagner Link para o comentário Compartilhar em outros sites More sharing options...
0 gladiador Postado Agosto 21, 2004 Denunciar Share Postado Agosto 21, 2004 /*Cara acho que num to entendendo a sua pergunta , bem vaomos fazer assim então : select * from tabela where tabela.exp = '1' and tabela.tipo between '1' and '9' and tabela.dataini <= '05.01.2004' Resulta em exp = 1tipo que esteja ente 1 e 9 data menor ou igual a 5.01.2004 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Wagner Bazarin
Pessoal:
Me desculpem se este não e' o lugar correto para esta pergunta, mas estou tentando construir um SQL em uma tabela a mais de dois dias sem sucesso.
A minha tabela tem 4 campos
Exp DataIni Lug Tipo Dec
1 1/7/2004 1 1 11
1 1/7/2004 1 2 22
1 1/7/2004 1 3 33
1 1/7/2004 1 4 44
1 1/7/2004 1 5 55
1 1/7/2004 1 6 66
1 1/7/2004 1 7 77
1 1/7/2004 1 8 88
1 1/7/2004 1 9 99
1 3/7/2004 1 3 101
1 5/7/2004 1 6 102
1 5/7/2004 1 9 103
Eu quero selecionar todos as Exp =1, Lug =1 e DataIni <= 5/7/2004, mas que o Tipo
seja unico e de maior data. Como exemplo a minha seleçao traria o seguinte resul-
tado:
Exp DataIni Lug Tipo Dec
1 1/7/2004 1 1 11
1 1/7/2004 1 2 22
1 3/7/2004 1 3 101
1 1/7/2004 1 4 44
1 1/7/2004 1 5 55
1 5/7/2004 1 6 102
1 1/7/2004 1 7 77
1 1/7/2004 1 8 88
1 5/7/2004 1 9 103
já tentei de tudo sem nenhum sucesso. Utilizando
Select Max(DataIni), Tipo from tabela where Exp=1 and Lug=1 and DataIni <=
Cast('1/7/2004' as date) group by Tipo me traz parte do resultado, mas não consiguo trazer todos os campos.
Desculpem a minha pouca experiëncia em SQL, mas a ajuda dos amigos seria muito importante.
Abraços,
Wagner Bazarin
wagner@bazarin.com
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados