Elaboração de consulta SQL/Firebird

SQL

Delphi

Firebird

01/05/2024

Olá.
Tenho um aplicativo simples para verificar sequencias da Loto Fácil,mas estava precisando elaborar uma consulta no banco de dados que retorne alguns registros onde se repetem 11 sequencias do sorteio,o premio mínimo da Loto Fácil.
A tabela contem o básico,campos "Concurso","Data","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12","B13","B14","B15".
Queria elaborar uma consulta para retornar os registros onde os campos de B1 a B11 tivessem valores iguais.
Agradeço a quem mostrar o caminho.
Vtrx

Vtrx

Curtidas 0

Respostas

Arthur Heinrich

Arthur Heinrich

01/05/2024

select *
from tabela
where
  b1 = b2 and
  b1 = b3 and
  b1 = b4 and
  b1 = b5 and
  b1 = b6 and
  b1 = b7 and
  b1 = b8 and
  b1 = b9 and
  b1 = b10 and
  b1 = b11
GOSTEI 0
Arthur Heinrich

Arthur Heinrich

01/05/2024

Agora, se é para retornar conjuntos de registros que possuem a mesma tupla formada pelas colunas (b1..b11), você precisa identificar os registros repetidos:

select b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11
from tabela
group by b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11
having count(1) > 1


Então, com este resultado, retornar os registros:

select t.*
from
  ( select b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11
    from tabela
    group by b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11
    having count(1) > 1 ) d
  join tabela t
    on t.b1 = d.b1 and
       t.b2 = d.b2 and
       t.b3 = d.b3 and
       t.b4 = d.b4 and
       t.b5 = d.b5 and
       t.b6 = d.b6 and
       t.b7 = d.b7 and
       t.b8 = d.b8 and
       t.b9 = d.b9 and
       t.b10 = d.b10 and
       t.b11 = d.b11
order by b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, concurso

GOSTEI 0
POSTAR