Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

EvandroMaster

[Resolvido] Limitar Quantidade Registros por Categoria

Recommended Posts

Oi amigos do Forum já faz mais de seis meses que procuro uma solução para uma consulta em SQL.

Preciso realizar uma consulta no meu banco de dados e preciso que me retorne 2 registros por turno(faixa horaria)

por dia da semana Exemplo:

 

Dom 1Turno

Dom 1Turno

Dom 2Turno

Dom 2Turno

Dom 3Turno

Dom 3Turno

Dom 4Turno

Dom 4Turno

Seg 1Turno

Seg 1Turno

Seg 2Turno

Seg 2Turno

Seg 3Turno

Seg 3Turno

Seg 4Turno

Seg 4Turno...... e assim por diante até sabado

 

a sql que eu fiz é essa: porem ela me retorna apenas um 1 turno por dia da semana seria assim

 

Dom 1Turno

Dom 2Turno

Dom 3Turno

Dom 4Turno

Seg 1Turno

Seg 2Turno

Seg 3Turno

Seg 4Turno...... e assim por diante até sabado

 

select nome_subsetor, case weekday(data_emissao)

when 0 then 'Dom' when 1 then 'Seg' when 2 then 'Ter' when 3 then 'Qua' when 4 then 'Qui' when 5 then '---' when 6 then

'Sab' end as dia_semana, case when hour(hora_com) between 1 and 6 then '1 turno'

 

when hour(hora_com) between 7 and 12 then '2 turno'

when hour(hora_com) between 13 and 18 then '3 turno'

else '4 turno' end as turno, concat(nome_logradouro, ', ', numero) as 'endereco', cod_diao,

count(*) as freq from ocor_div inner

join subsetores using(bairro) inner join crimes using (cod_diao) where

data_emissao >= '2008-03-01' and subsetores.cia = 53

and nome_setor = 'alto goias'

group by nome_subsetor, desc_diao

order by turno, dia_semana, nome_subsetor desc

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

select nome_subsetor, case weekday(data_emissao)

when 0 then 'Dom' when 1 then 'Seg' when 2 then 'Ter' when 3 then 'Qua' when 4 then 'Qui' when 5 then '---' when 6 then

'Sab' end as dia_semana, case when hour(hora_com) between 1 and 6 then '1 turno'

 

when hour(hora_com) between 7 and 12 then '2 turno'

when hour(hora_com) between 13 and 18 then '3 turno'

else '4 turno' end as turno, concat(nome_logradouro, ', ', numero) as 'endereco', cod_diao,

count(*) as freq from ocor_div inner

join subsetores using(bairro) inner join crimes using (cod_diao) where

data_emissao >= '2008-03-01' and subsetores.cia = 53

and nome_setor = 'alto goias'

group by nome_subsetor, desc_diao

order by turno, dia_semana, nome_subsetor desc

UNION ALL

select nome_subsetor, case weekday(data_emissao)

when 0 then 'Dom' when 1 then 'Seg' when 2 then 'Ter' when 3 then 'Qua' when 4 then 'Qui' when 5 then '---' when 6 then

'Sab' end as dia_semana, case when hour(hora_com) between 1 and 6 then '1 turno'

 

when hour(hora_com) between 7 and 12 then '2 turno'

when hour(hora_com) between 13 and 18 then '3 turno'

else '4 turno' end as turno, concat(nome_logradouro, ', ', numero) as 'endereco', cod_diao,

count(*) as freq from ocor_div inner

join subsetores using(bairro) inner join crimes using (cod_diao) where

data_emissao >= '2008-03-01' and subsetores.cia = 53

and nome_setor = 'alto goias'

group by nome_subsetor, desc_diao

order by turno, dia_semana, nome_subsetor desc

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.