Fórum SQL quase perfeita. #257261
04/11/2004
0
Aqui na empresa usamos componentes IBO Nativos ou Derivados de TDataset.
Tenho uma sql que funfa muito bem quando mando pegar um parametro inteiro, que realmente pertence a tabela em questão.
Mas a SQl é um pouco complexa, ela pega registros de outra tabela e exibe como resultado. Gostaria de que o parametro que vou informar, sja exatamente esse campo que ela pega de outra tabela. já fiz uma vez, de uma maneira bem simples por sinal, mas com o atual esquema que estou usando nao pega. Vo mandar a sql pra voces analizarem.
Aqui usamos windows XP sp2, Interbase e Delphi 7
select distinct (TT.instituicao), (select INS.descricao from instituicao INS where INS.codigo = tt.instituicao and INS.descricao = :Pinstituicao) as DescInstituicao, TT.instrutor, (select I.nomecompleto from instrutores I where i.codigo = tt.instrutor) as DescInstrutores, TT.almox, (select A.descricao from almox A where a.codigo = tt.almox) as DescAlmox, TT.coidgotreinamento, (select TN.descricao from trn_nomes_treinamento TN where tn.codigo = TT.coidgotreinamento) as DescTreinamento, TT.data, TT.fim, TT.carga_horaria, TT.valor, TT.conceito, TT.objetivo, TT.avaliacao, TT.material, TT.Data_avaliacao From trn_treinamento TT order by TT.instituicao
e tem mais, essa sql acima é a que está com problema, o problema que comentei. ela me retorna o valor que eu quero, mais também todos os registros, só que o campo que uso como parametro vem com valor nulo.
Desde já agradeço. :oops:
Technos
Curtir tópico
+ 0Posts
05/11/2004
Ilanocf
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]Em um componente TZMySQLQuery, tenho a SQL:[/b:7ca0d3a6a2][/color:7ca0d3a6a2]
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]Já no código (ao clicar o botão) tenho o mesmo código com os critérios:[/b:7ca0d3a6a2][/color:7ca0d3a6a2]
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]No caso acima, trabalho com 2 tabelas:[/b:7ca0d3a6a2][/color:7ca0d3a6a2] [b:7ca0d3a6a2]TB_Avaliacao[/b:7ca0d3a6a2] e [b:7ca0d3a6a2]TB_DetAvalia[/b:7ca0d3a6a2]
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]Já em outro exemplo, tenho em Access 97, a consulta:[/b:7ca0d3a6a2][/color:7ca0d3a6a2]
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]Se a transformássemos para Delphi seria:[/b:7ca0d3a6a2][/color:7ca0d3a6a2]
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]No caso acima estaríamos utilizando 3 tabelas:[/b:7ca0d3a6a2][/color:7ca0d3a6a2] [b:7ca0d3a6a2]TB_Arquivos[/b:7ca0d3a6a2], [b:7ca0d3a6a2]TB_Enderecos[/b:7ca0d3a6a2] e [b:7ca0d3a6a2]TB_Setores[/b:7ca0d3a6a2].
[color=red:7ca0d3a6a2][b:7ca0d3a6a2]Talvez o seu problema possa estar na cláusula (se é assim mesmo q deve ser chamado)[/color:7ca0d3a6a2][/b:7ca0d3a6a2] [b:7ca0d3a6a2]WHERE[/b:7ca0d3a6a2], [color=red:7ca0d3a6a2][b:7ca0d3a6a2]tente substití-la por[/b:7ca0d3a6a2][/color:7ca0d3a6a2] [b:7ca0d3a6a2]HAVING[/b:7ca0d3a6a2].
Espero q isso resolva.
Gostei + 0
05/11/2004
Technos
Essa palavra chave DistinctROW, nao conheço. procurei ver aki no meu IBexpert e nao existe simplesmente. Voce poderia me dizer pra que ela serve ? em qual versão do interbase / firebird ela funciona ? aki uso o firebird 1.5.
A sql que voce me mandou nao funcionou nao.
Continuo com o problema, mas sempre em busca de solução.
Gostei + 0
07/11/2004
Ilanocf
[b:f9dcb87ce0]DISTINCT[/b:f9dcb87ce0]: Omite registros que contêm dados duplicados nos campos selecionados. Para serem incluídos nos resultados da consulta, os valores de cada campo listado na instrução SELECT devem ser exclusivos.
Estes são muito usados em Banco de Dados Access, tb utilizo o [b:f9dcb87ce0]DISTINCTROW[/b:f9dcb87ce0] em MySQL e funciona beleza! Vc pode ver isso nos sites:
[url]http://www.profwillian.com/bdados/aula03/BD_Aula05_SQL.htm[/url]
[url]www.ppgia.pucpr.br/~cristina/BancoDados/SQL_Exercicios.doc[/url]
Gostei + 0
08/11/2004
Gandalf.nho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)