Sim, mas no meu tenho um outro select fora e o row_number é só nesse que está, para que a numeração seja continuada
[quote=pmlm]Sim, mas no meu tenho um outro select fora e o row_number é só nesse que está, para que a numeração seja continuada
[/quote]
Ai mano pensei melhor vou utilizar sua query mesmo :D, dei uma analisada aqui ela ta melhor estruturada do que a que modifiquei vou ficar com ela mesma 8) , eu só queria modificar esse parametro 9999 do segundo select para continuar as ocorrencias de ordenação, será que tem como?
Como tens a query neste momento e que resultados devolve?
Pois é, é basicamento o que te expliquei acima, tou postar uma imagem pra vc ver, o que to querendo resolver é o seguinte, apartir o segundo select o ROW_Number está começando do 1º de novo, tenho que arrumar isso…
A QUERY É ESSA
[code]select
ROW_NUMBER() over(order by min(ede.data),sum(ede.valortot) desc)
as ‘CLASSIFICAÇÃO’,
eee.nome as ‘NOME’,
convert(char(10),min(ede.data),103) as ‘DATA’,
+‘R$ ’ +convert(varchar(10),sum(ede.valortot))
as ‘TOTAL A PAGAR’,
case
when matcpl.codcur = 1 then ‘DIREITO’
when matcpl.codcur = 3 then ‘MEDICINA’
when matcpl.codcur = 5 then ‘SISTEMAS DE INFORMAÇÃO’
when matcpl.codcur = 6 then ‘NUTRIÇÃO’
when matcpl.codcur = 7 then ‘ADMINISTRAÇÃO’
when matcpl.codcur = 8 then ‘EDUCAÇÃO FÍSICA’
end as ‘CURSO’,
max(turma.turma) as ‘TURMA’,
isnull(eee.telaluno,’-’) as ‘TELEFONE’
from eee,
matcpl,
fl,
turma,
ede
where
fl.valorbaixado = 0.0000
and fl.datapag is null
and fl.databaixa is null
and ede.valorpago = 0
and ede.valortot > 0.00
and ede.datapag is null
and matcpl.mataluno = eee.matricula
and matcpl.mataluno = ede.mataluno
and matcpl.perletivo = ede.perletivo
and matcpl.codcur = ede.codcur
and turma.matricula = eee.matricula
and ede.mataluno = eee.matricula
and ede.codlanc = fl.idlan
and fl.statuslan in (0)
group by eee.nome,
eee.telaluno,
matcpl.codcur
having sum(ede.valortot) > 3000
UNION ALL
select
ROW_NUMBER() over(order by sum(ede.valortot)desc)
as ‘CLASSIFICAÇÃO’,
eee.nome as ‘NOME’,
convert(char(10),min(ede.data),103) as ‘DATA’,
+‘R$ ’ +convert(varchar(10),sum(ede.valortot))
as ‘TOTAL A PAGAR’,
case
when matcpl.codcur = 1 then ‘DIREITO’
when matcpl.codcur = 3 then ‘MEDICINA’
when matcpl.codcur = 5 then ‘SISTEMAS DE INFORMAÇÃO’
when matcpl.codcur = 6 then ‘NUTRIÇÃO’
when matcpl.codcur = 7 then ‘ADMINISTRAÇÃO’
when matcpl.codcur = 8 then ‘EDUCAÇÃO FÍSICA’
end as ‘CURSO’,
max(turma.turma) as ‘TURMA’,
isnull(eee.telaluno,’-’) as ‘TELEFONE’
from eee,
matcpl,
fl,
turma,
ede
where
fl.valorbaixado = 0.0000
and fl.datapag is null
and fl.databaixa is null
and ede.valorpago = 0
and ede.valortot > 0.00
and ede.datapag is null
and matcpl.mataluno = eee.matricula
and matcpl.mataluno = ede.mataluno
and matcpl.perletivo = ede.perletivo
and matcpl.codcur = ede.codcur
and turma.matricula = eee.matricula
and ede.mataluno = eee.matricula
and ede.codlanc = fl.idlan
and fl.statuslan in (0)
group by eee.nome,
eee.telaluno,
matcpl.codcur
having sum(ede.valortot) <= 3000
[/code]
SELECT ROW_NUMBER() over (ordenacao, TOTALAPAGAR desc) as 'classificação, t.*
FROM
(select
min(ede.data) as ordenacao,
eee.nome as 'NOME',
convert(char(10),min(ede.data),103) as 'DATA',
+'R$ ' +convert(varchar(10),sum(ede.valortot))
as 'TOTALAPAGAR',
case
when matcpl.codcur = 1 then 'DIREITO'
when matcpl.codcur = 3 then 'MEDICINA'
when matcpl.codcur = 5 then 'SISTEMAS DE INFORMAÇÃO'
when matcpl.codcur = 6 then 'NUTRIÇÃO'
when matcpl.codcur = 7 then 'ADMINISTRAÇÃO'
when matcpl.codcur = 8 then 'EDUCAÇÃO FÍSICA'
end as 'CURSO',
max(turma.turma) as 'TURMA',
isnull(eee.telaluno,'-') as 'TELEFONE'
from eee,
matcpl,
fl,
turma,
ede
where
fl.valorbaixado = 0.0000
and fl.datapag is null
and fl.databaixa is null
and ede.valorpago = 0
and ede.valortot > 0.00
and ede.datapag is null
and matcpl.mataluno = eee.matricula
and matcpl.mataluno = ede.mataluno
and matcpl.perletivo = ede.perletivo
and matcpl.codcur = ede.codcur
and turma.matricula = eee.matricula
and ede.mataluno = eee.matricula
and ede.codlanc = fl.idlan
and fl.statuslan in (0)
group by eee.nome,
eee.telaluno,
matcpl.codcur
having sum(ede.valortot) > 3000
UNION ALL
select
9999 as ordenacao,
eee.nome as 'NOME',
convert(char(10),min(ede.data),103) as 'DATA',
+'R$ ' +convert(varchar(10),sum(ede.valortot))
as 'TOTALAPAGAR',
case
when matcpl.codcur = 1 then 'DIREITO'
when matcpl.codcur = 3 then 'MEDICINA'
when matcpl.codcur = 5 then 'SISTEMAS DE INFORMAÇÃO'
when matcpl.codcur = 6 then 'NUTRIÇÃO'
when matcpl.codcur = 7 then 'ADMINISTRAÇÃO'
when matcpl.codcur = 8 then 'EDUCAÇÃO FÍSICA'
end as 'CURSO',
max(turma.turma) as 'TURMA',
isnull(eee.telaluno,'-') as 'TELEFONE'
from eee,
matcpl,
fl,
turma,
ede
where
fl.valorbaixado = 0.0000
and fl.datapag is null
and fl.databaixa is null
and ede.valorpago = 0
and ede.valortot > 0.00
and ede.datapag is null
and matcpl.mataluno = eee.matricula
and matcpl.mataluno = ede.mataluno
and matcpl.perletivo = ede.perletivo
and matcpl.codcur = ede.codcur
and turma.matricula = eee.matricula
and ede.mataluno = eee.matricula
and ede.codlanc = fl.idlan
and fl.statuslan in (0)
group by eee.nome,
eee.telaluno,
matcpl.codcur
having sum(ede.valortot) <= 3000 )
t
Ao executa ess auqery sugeria por vc, aparece o seguinte erro
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ','.
Msg 102, Level 15, State 1, Line 83
Incorrect syntax near 't'.
Ok, última tentativa. Aparentemente isso está bem excepto pela ausência do AS no alias da sub query.
Na última linha, em vez de
coloca
[quote=pmlm]Ok, última tentativa. Aparentemente isso está bem excepto pela ausência do AS no alias da sub query.
Na última linha, em vez de
coloca
O erro persiste…
Ta osso essa query…
Não faço a mínima ideia do que possa ser o problema agora.
Batendo um olho na sua query, eu vi que na primeira linha está assim:
as 'classificação, t.*
Você deveria fechar essa aspa simples.
