SQL SERVER novamente

jonassavimby

Power Member
Estou a anhar com esta cena :confused::confused:

Tenho esta tabela:

UPDATE

2009-01-14 14:54:56.467
2009-01-14 14:56:36.500
2009-01-14 14:58:53.350
2009-01-14 14:58:55.520
2009-01-14 15:02:46.903
2009-01-14 15:03:01.047
2009-01-14 15:03:25.030
2009-01-14 15:03:27.640
2009-01-14 15:04:44.503
2009-01-14 15:04:58.287
2009-01-14 15:11:15.347
2009-01-14 15:11:15.410
2009-01-14 15:43:02.513
2009-01-14 16:11:18.907
2009-01-15 13:21:35.160
2009-01-15 13:51:40.310
2009-01-15 14:01:22.970
2009-01-15 14:42:20.440
2009-02-11 10:35:05.957
2009-02-11 10:36:19.570
2009-02-23 15:53:28.077

keria ter uma tabela com:

UPDATE2

2009-01-14 16:11:18.907
2009-01-15 14:42:20.440
2009-02-11 10:36:19.570
2009-02-23 15:53:28.077

Isto é queria as ultimas datas.:(:(

Agradecia imenso a ajuda.
 
Não tens mais nenhuma campo na primeira tabela?
Assim era mais façil através do 'where', caso essa coluna fosse igual nas últimas entrada.


Existe o 'Select TOP x' mas não sei se faz bem o que queres.
 
Boas pessoal,

Mas o TOP só devolve as 5 primeiras, neste caso se fizer:

TOP 3 à tabela UPDATE, vai me devolver só

2009-01-14 14:54:56.467
2009-01-14 14:56:36.500
2009-01-14 14:58:53.350

e não

2009-01-14 16:11:18.907
2009-01-15 14:42:20.440
2009-02-11 10:36:19.570

que são dias diferentes.:(:(:(

Mas obrigado pela ajuda
 
Vá... vou dar a solução...

Nada de ORDER BY...

Reparem:

SELECT Max(Table1.Field) AS MaxOfField
FROM Table1
GROUP BY Format(Field,"dd-mm-yyyy")

;)
 
Boa solução se ele quiser apenas UM registo. (Não conhecia o MAX, por acaso :) ty)
Acho que quer vários, portanto lá temos de voltar às ordenações.
 
Boa solução se ele quiser apenas UM registo. (Não conhecia o MAX, por acaso :) ty)
Acho que quer vários, portanto lá temos de voltar às ordenações.

Desculpa mas eu introduzi todos os dados e depois a query devolve os dados que são pretendidos.

As ordenações neste caso de nada servem...
 
Desculpa mas eu introduzi todos os dados e depois a query devolve os dados que são pretendidos.

As ordenações neste caso de nada servem...

Se exprimentaste isso mesmo com dados quem pede desculpa sou eu.
Estou a mandar postas de pescada sem base experimental.
jonassavimby, dá depois um feedback.
 
Seria este o resultado:

2009-02-23 15:53:28.077
2009-01-15 14:42:20.440
2009-01-15 14:01:22.970
2009-01-15 13:51:40.310

e não é isso que se pretende...:rolleyes:
Pediam-se os registos, não a ordenação. Mas que não seja por isso... :007:

SELECT <<campodata>>
FROM (
SELECT TOP 4 <<campodata>>
FROM <<tabela>>
ORDER BY <<campodata>> DESC)
ORDER BY <<campodata>>


... penso eu de que! :o
 
Boas, não tem tanto a ver com a ordenação, mas sim com o facto de o autor da thread pretender datas distintas (ignorando o time [hh:mm:ss]), como se pode observar pelo exemplo colocado no post inicial.

De qualquer das formas, a solução já aqui foi colacada; apenas é necessário utilizar a função convert ao invés do format.
 
Código:
SELECT MAX(coluna) AS max_coluna
FROM tabela
GROUP BY DAYOFYEAR(coluna), YEAR(coluna)

Assumindo que queres o último valor de cada dia.
 
Boas, não tem tanto a ver com a ordenação, mas sim com o facto de o autor da thread pretender datas distintas (ignorando o time [hh:mm:ss]), como se pode observar pelo exemplo colocado no post inicial.

De qualquer das formas, a solução já aqui foi colacada; apenas é necessário utilizar a função convert ao invés do format.
ok, tens razão. não tinha interpretado correctamente o que o autor queria dizer com as "últimas datas". Sim, a solução é recorrendo à função max() e agrupar pela parte inteira da data.
 
obrigado

Pessoal obrigado pelas dicas, e a nivel de SQL resolvia a situação. :001::001:

Assim tb fiquei a saber mais umas coisas.

O problema é que estou a utilizar uma ferramenta de reports, e tenho de transportar para lá as minhas Data Sources e dps fazer ligações entre elas, mas quando kero fazer o MAX, o gajo não me deixa, nem Distinct... estou ****** com esta cena..


O programa é o ChangePoint e a ferramenta é o "Report Design". Alguem conhece?

Mas obrigado na mesma
 
Back
Topo