Dúvida em SQL
Fala galera!
Meu banco de dados é Access, possui duas tabelas (Tab1 e Tab2) e é acessado via ADO.
Gostaria de saber se é possível pesquisar dados em Tab1, utilizando informações que sejam provenientes de Tab1 [color=red:22f3eae1f4][b:22f3eae1f4]e[/b:22f3eae1f4][/color:22f3eae1f4] também de Tab2.
Exemplo:
Tab1 possui os campos: NumeroSerie e AnoFrabricacao.
Tab2 possui os campos: Tipo, Cor e Data.
Desejo pesquisar os registros da [b:22f3eae1f4]Tab1 [/b:22f3eae1f4]que possuem [b:22f3eae1f4]AnoFrabricacao [/b:22f3eae1f4]entre 1999 e 2003 [color=red:22f3eae1f4][b:22f3eae1f4]e[/b:22f3eae1f4][/color:22f3eae1f4] que sejam do [b:22f3eae1f4]Tipo [/b:22f3eae1f4]´X´ e da [b:22f3eae1f4]Cor [/b:22f3eae1f4]´Branca´ (dados [b:22f3eae1f4]Tipo [/b:22f3eae1f4]e [b:22f3eae1f4]Cor [/b:22f3eae1f4]encontrados na Tab2).
É possível fazer uma pesquisa dessas envolvendo dados de duas tabelas diferentes? Se sim, como?
Grato.
wbb
Meu banco de dados é Access, possui duas tabelas (Tab1 e Tab2) e é acessado via ADO.
Gostaria de saber se é possível pesquisar dados em Tab1, utilizando informações que sejam provenientes de Tab1 [color=red:22f3eae1f4][b:22f3eae1f4]e[/b:22f3eae1f4][/color:22f3eae1f4] também de Tab2.
Exemplo:
Tab1 possui os campos: NumeroSerie e AnoFrabricacao.
Tab2 possui os campos: Tipo, Cor e Data.
Desejo pesquisar os registros da [b:22f3eae1f4]Tab1 [/b:22f3eae1f4]que possuem [b:22f3eae1f4]AnoFrabricacao [/b:22f3eae1f4]entre 1999 e 2003 [color=red:22f3eae1f4][b:22f3eae1f4]e[/b:22f3eae1f4][/color:22f3eae1f4] que sejam do [b:22f3eae1f4]Tipo [/b:22f3eae1f4]´X´ e da [b:22f3eae1f4]Cor [/b:22f3eae1f4]´Branca´ (dados [b:22f3eae1f4]Tipo [/b:22f3eae1f4]e [b:22f3eae1f4]Cor [/b:22f3eae1f4]encontrados na Tab2).
É possível fazer uma pesquisa dessas envolvendo dados de duas tabelas diferentes? Se sim, como?
Grato.
wbb
Wbb
Curtidas 0
Respostas
Koplin
22/09/2003
Usando o Locate
Tab1.locate(´campo_1;campo_2;campo_3´),vararrayoff([campo_1.value,tab2Campo_1.value,Tab2.Campo_2.value]),[]);
Podendo ainda usar os parametros opcionais de pesquisa. Consulte o Help do Deplhi que mostra detalhes
Tab1.locate(´campo_1;campo_2;campo_3´),vararrayoff([campo_1.value,tab2Campo_1.value,Tab2.Campo_2.value]),[]);
Podendo ainda usar os parametros opcionais de pesquisa. Consulte o Help do Deplhi que mostra detalhes
GOSTEI 0
Wbb
22/09/2003
koplin,
Sobre a resposta que você indicou, desculpe minha ignorância mas não sei muita coisa sobre SQL ou outros recursos relacionados de determinados controles, tais como parâmetros, etc. Dei uma olhada no help, mas tem coisas, as quais todos já passamos, em que a resposta está na nossa cara e não conseguimos ver. Sendo assim, se possível, você poderia me passar mais detalhes?
Grato.
wbb
OBS.: [b:ef1a7e42f8]Tab1 [/b:ef1a7e42f8]e [b:ef1a7e42f8]Tab2 [/b:ef1a7e42f8]são os nomes das tabelas contidas num banco de dados do tipo Access. O acesso ao BD é feito via ADOConnection.
Sobre a resposta que você indicou, desculpe minha ignorância mas não sei muita coisa sobre SQL ou outros recursos relacionados de determinados controles, tais como parâmetros, etc. Dei uma olhada no help, mas tem coisas, as quais todos já passamos, em que a resposta está na nossa cara e não conseguimos ver. Sendo assim, se possível, você poderia me passar mais detalhes?
Grato.
wbb
OBS.: [b:ef1a7e42f8]Tab1 [/b:ef1a7e42f8]e [b:ef1a7e42f8]Tab2 [/b:ef1a7e42f8]são os nomes das tabelas contidas num banco de dados do tipo Access. O acesso ao BD é feito via ADOConnection.
GOSTEI 0
Koplin
22/09/2003
O comando locate permite que voce encontre o 1º registro com ocorrencias coincidentes determinado pelos parametros definidos na função.
Eu é que peço desculpas, não prestei atenção na sua pergunta direito. O telefone tocou e eu perdi o fio da meada.
Mas olhando melhor sua questão, Voce precisa encontrar vários registros entre determinado valor. Sendo assim, A opção é voce usar uma consulta SQL;
Select Tab1.*, Tab2.cor, tab2.tipo from Tab1, tab2 where tab2.campo_secundario=tab1.campo_chave and tab1.AnoFabricacao between 2000 and 2001 and tab2.cor=´BRANCA´ Tab2.tipo=´X´ order by tab1.anofabricacao
Se for um unico ano faça
tab1.AnoFabricacao = 2000
A tabela Tab2 precisa ter um campo que reflita o valor do campo chave TAb1 (ou outro campo), para voce poder fazer a ligação, e voce não disse se tem ou quais são estes campos.
Campo_secundario da tab2 = campo_chave de Tab1
A query assim montada vai trazer para voce todos os registros de tab1 que estiverem dentro do ano de fabricacao definido pela consulta e com o valor definido pelo campo <<numerodeserie>> e de tab2 cujo registro secundário corresponda ao primário de Tab1.
Se numerodeserie for string o valor deve estar entre aspas simples <<´123456´>
Vc pode usar outros campos seguindo a mesma filosofia
Se ficou confuso, me manda um email com os detalhes das duas tabelas que te mando a sql
Eu é que peço desculpas, não prestei atenção na sua pergunta direito. O telefone tocou e eu perdi o fio da meada.
Mas olhando melhor sua questão, Voce precisa encontrar vários registros entre determinado valor. Sendo assim, A opção é voce usar uma consulta SQL;
Select Tab1.*, Tab2.cor, tab2.tipo from Tab1, tab2 where tab2.campo_secundario=tab1.campo_chave and tab1.AnoFabricacao between 2000 and 2001 and tab2.cor=´BRANCA´ Tab2.tipo=´X´ order by tab1.anofabricacao
Se for um unico ano faça
tab1.AnoFabricacao = 2000
A tabela Tab2 precisa ter um campo que reflita o valor do campo chave TAb1 (ou outro campo), para voce poder fazer a ligação, e voce não disse se tem ou quais são estes campos.
Campo_secundario da tab2 = campo_chave de Tab1
A query assim montada vai trazer para voce todos os registros de tab1 que estiverem dentro do ano de fabricacao definido pela consulta e com o valor definido pelo campo <<numerodeserie>> e de tab2 cujo registro secundário corresponda ao primário de Tab1.
Se numerodeserie for string o valor deve estar entre aspas simples <<´123456´>
Vc pode usar outros campos seguindo a mesma filosofia
Se ficou confuso, me manda um email com os detalhes das duas tabelas que te mando a sql
GOSTEI 0
Wbb
22/09/2003
koplin, passei um a você uma mensagem privada.
Obrigado!
wbb
Obrigado!
wbb
GOSTEI 0
Wbb
22/09/2003
A dúvida persiste...
GOSTEI 0