Bogos

setembro 17, 2008

Querys pra relatórios

Filed under: SQL — Tags:, , , , , , , , , , , , — Bogos @ 11:20 am

Seguem duas querys que tive que desenvolver essa semana pra gerar 2 tipos de relatórios que o cliente pediu. Um deles traz as linhas da seguinte forma:

Cod. Nome | Cod. Nome
1 Bogos | 31 Ivens
|
30 Fulano | 60 Cicrano

A quantidade de rows por página pode ser definida (no caso está 30, basta analisar a query).

A outra está organizada em zig-zag, segue exemplo:

Cod. Nome | Cod. Nome
1 Bogos | 2 Ivens
|
59 Fulano | 60 Cicrano

Seguem as querys na mesma ordem acima:

select i.linha, i.id, i.descritivo, p.linha linhap, p.id idp, p.descritivo descritivop
from (

select * from (

select rownum linha, x.* from (

select id, descritivo from produtos order by id

) x

) where mod(linha – 1, 60) >= 30

)p,
(

select * from (

select rownum linha, x.* from (

select id, descritivo from produtos order by id

) x

) where mod(linha – 1, 60) < 30

) i

where i.linha + 30 = p.linha (+)
order by i.linha

Agora o zig-zag:

select i.lina, i.id, i.descritivo, p.linha linhap, p.id idp, p.descritivo descritivop from (

select * from (

select rownum linha, x.* from (

select id, descritivo from produto order by id

) x

) where mod(linha,2) = 0

) p,
(

select * from (

select rownum linha, x.* from (

select id, descritivo from produtos order by id

) x

) where mod(linha,2) = 1

) i

where i.linha + 1 = p.linha (+)
order by i.linha;

Quem sabe não serve pra alguém não?

Abraços!

Anúncios

Deixe um comentário »

Nenhum comentário ainda.

RSS feed for comments on this post. TrackBack URI

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Crie um website ou blog gratuito no WordPress.com.

%d blogueiros gostam disto: