select g.*
from
(
select
mensalidade - mensalidade*(bolsa/100) mensalidade_desconto,
(mensalidade - mensalidade*(bolsa/100))*12+300 total_Mensalidade_Anuidade,
trim(ins.turno) tur,
ins.* ,
u.nome as nome_unidade
from
(
select
case
when ins.rank_segmento=1 then
100
when ins.rank=1 then
50
when ins.rank in (2) then
45
when ins.rank between 3 and 4 then
40
when ins.rank between 5 and 7 then
35
when ins.rank between 8 and 11 then
30
when ins.rank between 12 and 16 then
25
when ins.rank between 17 and 26 then
20
when ins.rank between 27 and 41 then
15
when ins.rank between 42 and 61 then
10
when ins.rank between 62 and 86 then
5
when ins.rank > 87 then
0 end as bolsa,
ins.*
from
(
SELECT
segmento ,
inscricao,
rank_segmento,
1 as rank,
id,
initcap(nome) nome,
data_nascimento,
cep,
telefone,
aluno_interno,
origem,
serie_ano,
serie_pretendida,
unidade,
endereco,
local_prova,
data_inscricao,
email,
turno,
qtde_mat,
qtde_port,
total_acertos,
mensalidade,
total_anuidade ,
serie
FROM
(
SELECT
segmento,
inscricao,
id,
nome,
data_nascimento,
cep,
telefone,
aluno_interno,
origem,
serie_ano,
serie_pretendida,
unidade,
endereco,
local_prova,
data_inscricao,
email,
turno,
qtde_mat,
qtde_port,
total_acertos,
mensalidade,
total_anuidade,
serie,
@rn1 := if(@pk1=segmento, if(@sal=inscricao, @rn1, @rn1+1),1) as rank_segmento,
@pk1 := segmento, @sal := inscricao
FROM
(
SELECT
ins.id ,
ins.inscricao,
trim(ins.nome) nome,
ins.data_nas as data_nascimento,
ins.cep,
ins.tel as telefone,
ins.aluno_interno,
ins.origem,
case
when (ins.serie_ano='3a mil') then
'3a serie'
when (ins.serie_ano='9o mil') then
'9o ano'
when (ins.serie_ano='Pre-Vestibular-Manha') or (ins.serie_ano='Pre-Vestibular-Noite') or (ins.serie_ano='Pre-Vestibular-Tarde') or (ins.serie_ano='Pre-mil 3o') then
'Pre'
else
ins.serie_ano end serie_ano,
ins.serie_ano serie_pretendida,
ins.unidade,
ins.endereco,
ins.local_prova,
ins.data_inscricao,
ins.email,
case
when ins.horario='M' then
'Manhã'
else
'Tarde'
end as turno,
ins.qtde_mat,
ins.qtde_port,
ins.qtde_mat + ins.qtde_port as total_acertos,
sm.valor_mensalidade as mensalidade,
sm.valor_mensalidade *12 +300 as total_anuidade ,
case
when ins.compareceu='S' then
'Sim'
else
'Não' end as compareceu,
case
when (ins.serie_ano='Pré-mil 3o') or (ins.serie_ano='Pre-Vestibular-Manha')or (ins.serie_ano='Pre-Vestibular-Tarde')or (ins.serie_ano='Pre-Vestibular-Noite') or (ins.serie_ano='3a mil') then
'3a serie'
when (ins.serie_ano='9o mil')or (ins.serie_ano='Pre-mil 9o') then
'9o ano'
else
ins.serie_ano end as serie,
sm.segmento as segmento
FROM inscricoes ins
inner join serie_ano_mensalidade sm on sm.serie_ano = ins.serie_ano
where ano=2015 and unidade=2
ORDER BY segmento,total_acertos desc,qtde_port desc,data_nascimento desc,nome ) A ) B
where rank_segmento=1
union all
SELECT
segmento ,
inscricao,
0 as rank_segmento,
rank,
id,
initcap(nome) nome,
data_nascimento,
cep,
telefone,
aluno_interno,
origem,
serie_ano,
serie_pretendida,
unidade,
endereco,
local_prova,
data_inscricao,
email,
turno,
qtde_mat,
qtde_port,
total_acertos,
mensalidade,
total_anuidade ,
serie
FROM(
SELECT
segmento,
inscricao,
id,
nome,
data_nascimento,
cep,
telefone,
aluno_interno,
origem,
serie_ano,
serie_pretendida,
unidade,
endereco,
local_prova,
data_inscricao,
email,
turno,
qtde_mat,
qtde_port,
total_acertos,
mensalidade,
total_anuidade ,
serie,
@rn2 := if(@pk2=serie_ano, if(@sal=inscricao, @rn2, @rn2+1),1) as rank,
@pk2 := serie_ano, @sal := inscricao
FROM
(
SELECT
ins.id ,
ins.inscricao,
trim(ins.nome) nome,
ins.data_nas as data_nascimento,
ins.cep,ins.tel as telefone,
ins.aluno_interno,
ins.origem,
case
when (ins.serie_ano='3a mil') then
'3a serie'
when (ins.serie_ano='9o mil') then
'9o ano'
when (ins.serie_ano='Pre-Vestibular-Manha') or (ins.serie_ano='Pre-Vestibular-Noite') or (ins.serie_ano='Pre-Vestibular-Tarde') or (ins.serie_ano='Pre-mil 3o') then
'Pre'
else
ins.serie_ano end serie_ano,
ins.serie_ano serie_pretendida,
ins.unidade,
ins.endereco,
ins.local_prova,
ins.data_inscricao,
ins.email,
case
when ins.horario='M' then
'Manhã'
else
'Tarde' end as turno,
ins.qtde_mat,
ins.qtde_port,
ins.qtde_mat + ins.qtde_port as total_acertos,
sm.valor_mensalidade as mensalidade,
sm.valor_mensalidade *12 +300 as total_anuidade ,
case
when ins.compareceu='S' then
'Sim'
else
'Não' end as compareceu,
case
when (ins.serie_ano='Pré-mil 3o') or (ins.serie_ano='Pre-Vestibular-Manha')or (ins.serie_ano='Pre-Vestibular-Tarde')or (ins.serie_ano='Pre-Vestibular-Noite') or (ins.serie_ano='3a mil') then
'3a serie'
when (ins.serie_ano='9o mil')or (ins.serie_ano='Pre-mil 9o') then
'9o ano'
else
ins.serie_ano end as serie,
sm.segmento as segmento
FROM inscricoes ins
inner join serie_ano_mensalidade sm on sm.serie_ano = ins.serie_ano
where ano=2015 and unidade=2
ORDER BY serie_ano,serie,total_acertos desc,qtde_port desc,data_nascimento desc,nome ) A
where id not in (
SELECT id FROM (
SELECT segmento, inscricao,id,initcap(nome),data_nascimento,cep,telefone,aluno_interno,origem,serie_ano,serie_pretendida,unidade,endereco, local_prova,data_inscricao,email,turno,qtde_mat,qtde_port,total_acertos,mensalidade,total_anuidade ,serie, @rn3 := if(@pk3=segmento, if(@sal=inscricao, @rn3, @rn3+1),1) as rank_segmento, @pk3 := segmento, @sal := inscricao FROM ( SELECT ins.id ,ins.inscricao,trim(ins.nome) nome,ins.data_nas as data_nascimento,ins.cep,ins.tel as telefone, ins.aluno_interno,ins.origem, case when (ins.serie_ano='3a mil') then '3a serie' when (ins.serie_ano='9o mil') then '9o ano' when (ins.serie_ano='Pre-Vestibular-Manha') or (ins.serie_ano='Pre-Vestibular-Noite') or (ins.serie_ano='Pre-Vestibular-Tarde') or (ins.serie_ano='Pre-mil 3o') then 'Pre' else ins.serie_ano end serie_ano,ins.serie_ano serie_pretendida,ins.unidade,ins.endereco,ins.local_prova,ins.data_inscricao, ins.email,case when ins.horario='M' then 'Manhã' else 'Tarde' end as turno,ins.qtde_mat,ins.qtde_port,ins.qtde_mat + ins.qtde_port as total_acertos, sm.valor_mensalidade as mensalidade,sm.valor_mensalidade *12 +300 as total_anuidade ,case when ins.compareceu='S' then 'Sim' else 'Não' end as compareceu,case when (ins.serie_ano='Pré-mil 3o') or (ins.serie_ano='Pre-Vestibular-Manha')or (ins.serie_ano='Pre-Vestibular-Tarde')or (ins.serie_ano='Pre-Vestibular-Noite') or (ins.serie_ano='3a mil') then '3a serie' when (ins.serie_ano='9o mil')or (ins.serie_ano='Pre-mil 9o') then '9o ano' else ins.serie_ano end as serie, sm.segmento as segmento FROM inscricoes ins inner join serie_ano_mensalidade sm on sm.serie_ano = ins.serie_ano where ano=2015 and unidade=2 ORDER BY segmento,total_acertos desc,qtde_port desc,data_nascimento desc,nome ) A ) B where rank_segmento=1) ) B ) ins)ins inner join unidade u on u.id = ins.unidade where ins.id in(293,1482,223,1434,248,1259,350,194,1265,93,1220,783,1230,951,1403,569,1427,1177,1573,1377,1373,1546,1292,330,873,1127,814,1165,765,299,110,143,182,1148,6,727,140,349,1256,1037,1337,1537,382,886,1328,968,548,1511,1034,377,607,767,1314,884,141,1382,43,1121,933,124,351,801,375,269,547,1545,1469,339,1369,1038,1451,86,1513,105,113,1226,340,1317,1483,202,1067,1017,1010,12,658,155,927,810,1504,545,1070,133,733,580,756,755,541,687,1097,298,36,930,122,703,256,383,210,305,570)) g order by serie_pretendida, nome