TekCell Tecnologia Postado Abril 5, 2023 Compartilhar Postado Abril 5, 2023 Estou começando a Estudar Delphi e preciso de uma ajuda para criar um InstruçãoSQL que não estou conseguindo.Tenho Seguinte tabela de passas de competidores que correm de cavalo em duplas sorteadas sem repetiçãonas baterias que ja criei e ja ta tudo okTabela de passadasID Nº BATERIA Competidor 1 Competidor 21 1 BATERIA /FARNEY / PEDRO2 1 BATERIA MARIA KENIA3 1 BATERIA APARICIO HU4 1 BATERIA GAVINHA RODRIGAO5 2 BATERIA GAVINHA APARICIO6 2 BATERIA HU MARIA7 2 BATERIA PEDRO KENIA8 2 BATERIA FARNEY RODRIGAO9 3 BATERIA FARNEY GAVINHA10 3 BATERIA APARICIO PEDRO11 3 BATERIA MARIA RODRIGAO12 3 BATERIA KENIA HU13 4 BATERIA MARIA APARICIO14 4 BATERIA HU GAVINHA15 4 BATERIA KENIA FARNEY16 4 BATERIA RODRIGAO PEDRO17 5 BATERIA PEDRO HU18 5 BATERIA FARNEY APARICIO19 5 BATERIA RODRIGAO KENIA20 5 BATERIA MARIA GAVINHA21 6 BATERIA GAVINHA RODRIGAO22 6 BATERIA APARICIO KENIA23 6 BATERIA MARIA PEDRO24 6 BATERIA HU FARNEYPreciso criar uma SQL que liste os competidores por ordem alfabética com quem ele vai correr.Aparicio X Todos que ele vai correrkENIA X Todos que ela vai correr.... e assim por diante.Pela logica vai ter repetição pois Se aparicio corre com kenia, kenia tambem vai correr aparicio.Ja consegui com essa instrução:dm.queryConPas.SQL.Add('SELECT * FROM passadas WHERE ID_Evento = ' + IntToStr(IdEvento) + ' Order BY Comp1, Comp2 ASC');Essa listagem:Nº bATERIA Competidor 1 Competidor 21 BATERIA APARICIO HU6 BATERIA APARICIO KENIA3 BATERIA APARICIO PEDRO5 BATERIA FARNEY APARICIO3 BATERIA FARNEY GAVINHA1 BATERIA FARNEY PEDRO2 BATERIA FARNEY RODRIGAO2 BATERIA GAVINHA APARICIO6 BATERIA GAVINHA RODRIGAO1 BATERIA GAVINHA RODRIGAO6 BATERIA HU FARNEY4 BATERIA HU GAVINHA2 BATERIA HU MARIA4 BATERIA KENIA FARNEY..... ...... .... e assim por diante..preciso de algo assimdm.queryConPas.SQL.Add('SELECT * FROM passadas WHERE ID_Evento = ' + IntToStr(IdEvento) + ' AND Comp1 = :C1 OR Comp2 = :C2');dm.queryConPas.ParamByName('C1').Value := lblNome.Caption;dm.queryConPas.ParamByName('C2').Value := lblNome.Caption;Ai consigo a ordem mas so de um competidor, precisava de uma lista em ordem alfabética com todos os competidores e seu parceiros, lembrando que no caso a competidora kenia pode estar no campo competidor 1 ou competidor 2 ok.Nº bATERIA Competidor 1 Competidor 21 BATERIA MARIA KENIA2 BATERIA PEDRO KENIA3 BATERIA KENIA HU4 BATERIA KENIA FARNEY5 BATERIA RODRIGAO KENIA6 BATERIA APARICIO KENIAPor favor alquem pode me dar uma ajuda... Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
AdilsonD Postado Abril 6, 2023 Compartilhar Postado Abril 6, 2023 Olá. Primeiramente há um erro em sua instrução sql. Você está utilizando "AND" e "OR", então você precisa colocar "()". dm.queryConPas.SQL.Add('SELECT * FROM passadas WHERE ID_Evento = ' + IntToStr(IdEvento) + ' AND (Comp1 = :C1 OR Comp2 = :C2)'); Para sua listagem você pode utilizar o UNION SELECT BATERIA AS BATERIA, COMPETIDOR1 AS COMPETIDOR1, COMPETIDOR2 AS COMPETIDOR2 FROM FROM PASSADAS WHERE ID_EVENTO = :IDEVENTO UNION SELECT BATERIA AS BATERIA, COMPETIDOR2 AS COMPETIDOR1, COMPETIDOR1 AS COMPETIDOR2 FROM FROM PASSADAS WHERE ID_EVENTO = :IDEVENTO ORDER BY 2,3 1 Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Postagens Recomendadas
Crie uma conta ou entre para comentar 😀
Você precisa ser um membro para deixar um comentário.
Crie a sua conta
Participe da nossa comunidade, crie sua conta.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.