GARANTIR DESCONTO

Fórum Dúvida em SQL #183515

22/09/2003

0

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


Wbb

Wbb

Responder

Posts

22/09/2003

Koplin

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


Responder

Gostei + 0

22/09/2003

Wbb

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.


Responder

Gostei + 0

22/09/2003

Koplin

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


Responder

Gostei + 0

23/09/2003

Wbb

koplin, passei um a você uma mensagem privada.

Obrigado!
wbb


Responder

Gostei + 0

24/09/2003

Wbb

A dúvida persiste...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar