1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda SQL - Urgente

Discussão em 'Programação' iniciada por JPNUM, 12 de Maio de 2008. (Respostas: 12; Visualizações: 967)

  1. Boa tarde a todos!

    Estou a desenvolver uma aplicação para uma associação desportiva e tenho a seguinte base de dados:

    [​IMG]


    Alguma santa alma me pode dizer qual o código SQL que tenho de usar para saber qual a modalidade em que o atleta está inscrito? Por favor, ajudem que a minha cabeça ja estourou :(
     
  2. Armadillo

    Armadillo Folding Member

    a melhor forma é fazeres com joins

    mas esta tambem deve dar, mas nao te garanto nada. foi feita á pressa :D
    Código:
    select atletas.cod_atleta, modalidades.cod_modalidade
    from atletas, modalidades
    where atletas.cod_treinador = treinadores.cod_treinador and treinadores.cod_modalidade = modalidades.cod_modalidade
    
    cumps
     
  3. Lostctrl

    Lostctrl [email protected] Member

    Está tudo OK, mas só falta o join com a treinadores...

     
  4. K0mA

    K0mA Power Member

    SELECT FROM atletas, modalidades, treinadores WHERE atletas.cod_treinador = treinadores.cod_treinador AND cod_atleta = "mete_aqui_um_num_que_exista"
     
  5. Lostctrl

    Lostctrl [email protected] Member

    K0mA, está a faltar a ligação entre a treinadores e modalidades. A solução correcta é a do Armadillo, mas só tava a faltar a tabela treinadores no join :

    Código:
    select a.cod_atleta, m.cod_modalidade
    from atletas a, modalidades m, treinadores t
    where a.cod_treinador = t.cod_treinador and t.cod_modalidade = m.cod_modalidade
    Cumprs

     
  6. K0mA

    K0mA Power Member

    Não testei mas parece-me que tem de dar pois cada treinador tem apenas 1 modalidade logo o cod_treinador identifica a modalidade
     
  7. Hum ja tentei, tou a trabalhar com o VB6... dá-me o seguinte erro "Run-time error 3061 Too few parameters. Expected 2."

    o que faço? ja tou tao desnorteado que nem sei o que fazer...

    Podes explicar-me os joins? era mais facil para a criação de Recordsets :D
     
  8. Armadillo

    Armadillo Folding Member

    aonde te da o erro?
    posta a linha de codigo, por favor


    edit: esquece, esse erro é da query
     
  9. exacto... a base de dados foi pensada assim... 1 treinador por modalidade e eu iria buscar a modalidade pelo treinador...
     
  10. o VB aponta-me para a seguinte linha:

    Set sql_modalidade2 = base_dados.OpenRecordset(modalidade_query2, dbOpenDynaset)
     
  11. K0mA

    K0mA Power Member

    Já tentaste com a minha?
     
  12. Pah tao simples quanto isto :D

    SELECT treinadores.cod_modalidade FROM treinadores, atletas
    WHERE atletas.cod_treinador = treinadores.cod_treinador AND atletas.cod_atleta = atleta_de_outra_query

    descricao_variavel_do_VB = (sql_modalidade2("cod_modalidade"))

    SELECT descricao FROM modalidades WHERE cod_modalidade = descricao_variavel_do_VB

    que vos parece? :D
     
  13. Lostctrl

    Lostctrl [email protected] Member

    Em vez de tares a dar 2 hits na BD, fazes tudo numa só query... como já tinha sido falado em cima...

    Código:
    SELECT modalidades.descricao FROM treinadores, atletas, modalidades
    WHERE atletas.cod_treinador = treinadores.cod_treinador 
    AND treinadores.cod_modalidade = modalidades.cod_modalidade
    AND atletas.cod_atleta = atleta_de_outra_query
     

Partilhar esta Página