SERÁ QUE ALGUÉM SABE???
COMO POSSO FAZER UMA CONSULTA USANDO DOIS PARÂMETROS??
POR EXEMPLO:
O MEU SISTEMA É UM CADASTRO DE ORÇAMENTOS. CADA CLIENTE TEM VÁRIOS DOCUMENTOS. O CLIENTE PODE SER CADASTRADO DUAS OU MAIS VEZES SÓ QUE COM NOMES DE OBRAS DIFERENTES. ENTÃO ESTOU FAZENDO UMA CONSULTA DE DOCUMENTOS, SÓ QUE SE EU PESQUISAR POR CLIENTE E ELE TIVER CADASTRADO UM MESMO CLIENTE 2 VEZES OU MAIS, ELE ME TRARÁ TODOS OS DOCUMENTOS DO CLIENTE, SÓ QUE PRECISO QUE ALÉM DE PESQUISAR POR CLIENTE, EU POSSA PESQUISAR NOS RESULTADOS QUE ELE TROUXE, OS DOCUMENTOS PELO NOME DA OBRA TAMBÉM....
ALGUÉM TEM UMA IDÉIA??
RAFAELA
POR EXEMPLO:
O MEU SISTEMA É UM CADASTRO DE ORÇAMENTOS. CADA CLIENTE TEM VÁRIOS DOCUMENTOS. O CLIENTE PODE SER CADASTRADO DUAS OU MAIS VEZES SÓ QUE COM NOMES DE OBRAS DIFERENTES. ENTÃO ESTOU FAZENDO UMA CONSULTA DE DOCUMENTOS, SÓ QUE SE EU PESQUISAR POR CLIENTE E ELE TIVER CADASTRADO UM MESMO CLIENTE 2 VEZES OU MAIS, ELE ME TRARÁ TODOS OS DOCUMENTOS DO CLIENTE, SÓ QUE PRECISO QUE ALÉM DE PESQUISAR POR CLIENTE, EU POSSA PESQUISAR NOS RESULTADOS QUE ELE TROUXE, OS DOCUMENTOS PELO NOME DA OBRA TAMBÉM....
ALGUÉM TEM UMA IDÉIA??
RAFAELA
Rafaela
Curtidas 0
Respostas
Bilouro
20/03/2003
É CONSULTA SQL?
QUAIS CAMPOS VC TEM E QUAIS VC QUER FILTRAR...
[]´S
QUAIS CAMPOS VC TEM E QUAIS VC QUER FILTRAR...
[]´S
GOSTEI 0
Okama
20/03/2003
Select * from ORCAMENTO where CLIENTE = ´nome do cliente´
and DOCUMENTO = ´documento´
É isso???
and DOCUMENTO = ´documento´
É isso???
GOSTEI 0
Rafaela
20/03/2003
É O SEGUINTE...
TENHO UMA TABELA DE ORÇAMENTOS E UMA DE DOCUMENTOS.
CADA ORÇAMENTO TEM UM CLIENTE E VÁRIOS DOCUMENTOS.
QUERO FAZER UMA CONSULTA DE DOCUMENTOS.
SÓ QUE POR EXEMPLO, FIZ UM ORÇAMENTO DE UM CLIENTE O ANO PASSADO (ELE ESTÁ CADASTRADO) E TIVE QUE FAZER OUTRO ORÇAMENTO DO MESMO CLIENTE ESTE ANO. E NO ANO PASSADO ELE TINHA SEUS DOCUMENTOS E NESTE ANO ELE TEM OUTROS. ENTÃO QUANDO FOR FAZER A CONSULTA QUERO CONSULTAR PRIMEIRO POR CLIENTE. QUANDO ELE TROUXER O NOME DO CLIENTE QUE EU PESQUISEI, CONCORDAM QUE ELE VAI TRAZER TODOS OS DOCUMENTOS, TANTO DO ANO PASSADO COMO DESTE ANO. ENTÃO QUERO FAZER UMA OUTRA CONSULTA DENTRO DOS MEUS RESULTADOS BUSCANDO OS DOCUMENTOS PELO NOME DA OBRA. ASSIM EU DIGITO O NOME DA OBRA (QUE TAMBÉM É CADASTRADA NO ORÇAMENTO E NOS DOCUMENTOS) E ELE FILTRA NOVAMENTE SÓ QUE AGORA OS DOCUMENTOS PELA OBRA... ENTENDERAM???
A CONSULTA EU ESTAVA TENTANDO COM O QUERY..
RAFAELA
TENHO UMA TABELA DE ORÇAMENTOS E UMA DE DOCUMENTOS.
CADA ORÇAMENTO TEM UM CLIENTE E VÁRIOS DOCUMENTOS.
QUERO FAZER UMA CONSULTA DE DOCUMENTOS.
SÓ QUE POR EXEMPLO, FIZ UM ORÇAMENTO DE UM CLIENTE O ANO PASSADO (ELE ESTÁ CADASTRADO) E TIVE QUE FAZER OUTRO ORÇAMENTO DO MESMO CLIENTE ESTE ANO. E NO ANO PASSADO ELE TINHA SEUS DOCUMENTOS E NESTE ANO ELE TEM OUTROS. ENTÃO QUANDO FOR FAZER A CONSULTA QUERO CONSULTAR PRIMEIRO POR CLIENTE. QUANDO ELE TROUXER O NOME DO CLIENTE QUE EU PESQUISEI, CONCORDAM QUE ELE VAI TRAZER TODOS OS DOCUMENTOS, TANTO DO ANO PASSADO COMO DESTE ANO. ENTÃO QUERO FAZER UMA OUTRA CONSULTA DENTRO DOS MEUS RESULTADOS BUSCANDO OS DOCUMENTOS PELO NOME DA OBRA. ASSIM EU DIGITO O NOME DA OBRA (QUE TAMBÉM É CADASTRADA NO ORÇAMENTO E NOS DOCUMENTOS) E ELE FILTRA NOVAMENTE SÓ QUE AGORA OS DOCUMENTOS PELA OBRA... ENTENDERAM???
A CONSULTA EU ESTAVA TENTANDO COM O QUERY..
RAFAELA
GOSTEI 0
Leao
20/03/2003
bom seu eu entedi vc pode fazer o seguinte...
Query.SQL.Text:=´SELECT clientes.*, orcamentos.* FROM orcamentos INNER JOIN clientes ON clientes.cod = orcamentos.CodCliente´; Query.Open;
GOSTEI 0
Rafaela
20/03/2003
O que é inner join?
GOSTEI 0
Aroldo Zanela
20/03/2003
O que é inner join?
O operador lógico Inner Join retorna cada linha que satisfaça a união da primeira (top) entrada com a segunda (bottom) entrada.
Fui claro?
GOSTEI 0
Bilouro
20/03/2003
LEVANDO EM CONSIDERACAO QUE VC ESTA TRABALHANDO C/ 3 TABELAS
TABELA CLIENTES(COD_CLI CHAVE PRIMARIA, NOME_CLI ...)
TABELA ORÇAMENTOS(COD_ORC, COD_CLI CHAVE CHAVE ESTRANGEIRA, ORCAMENTO...)
TABELA DOCUMENTOS(COD_DOC, COD_ORC CHAVE ESTRANGEIRA, COD_CLI CHAVE CHAVE ESTRANGEIRA, DOCUMENTO...)
SELECT C.COD_CLI, C.NOME_CLI, O.COD_ORC, O.ORCAMENTO, D.COD_DOC, D.DOCUMENTO
FROM CLIENTES C
JOIN ORCAMENTOS O
ON C.COD_CLI = O.COD_CLI
JOIN DOCUMENTOS D
ON O.COD_ORC = D.COD_ORC
WHERE C.NOME_CLI LIKE ´RAFAELA¬´ /*OU WHERE NOME_CLI = ´RAFAELA DOS
SANTOS´ */
IRÁ TE RETORNAR TODOS OS DOCUMENTOS E ORCAMENTOS DE UM CLIENTE...
SELECT C.COD_CLI, C.NOME_CLI, O.COD_ORC, O.ORCAMENTO, D.COD_DOC, D.DOCUMENTO
FROM CLIENTES C
JOIN ORCAMENTOS O
ON C.COD_CLI = O.COD_CLI
JOIN DOCUMENTOS D
ON O.COD_ORC = D.COD_ORC
WHERE C.NOME_CLI LIKE ´RAFAELA¬´ /*OU WHERE NOME_CLI = ´RAFAELA DOS
SANTOS´ */
AND COD_ORC = ´002´
IRÁ RETORNAR OQUE VC QUER...
PS1:
TEM ALGUNS TRUCKS LEGAIS, SE VC FOR EXIBIR EM UM DBGRID, VC PODE FAZER COM QUE O EVENTO ONDBCLIK(CLIQUE DUPLO) RETORNE SÓ OS DOCS DAQUELE ORÇAMENTO...
PS2:
SE VC VAI PESQUISAR 2X DE QQ MANEIRA, DA PRIMEIRA VEZ VC NÃO PRECISA MOSTRAR TODOS OS DOCUMENTOS... FICARIA ASSIM A PRIMEIRA QUERY
SELECT C.COD_CLI, C.NOME_CLI, O.COD_ORC, O.ORCAMENTO
FROM CLIENTES C
JOIN ORCAMENTOS O
ON C.COD_CLI = O.COD_CLI
WHERE C.NOME_CLI LIKE ´RAFAELA¬´ /*OU WHERE NOME_CLI = ´RAFAELA DOS
SANTOS´ */
TABELA CLIENTES(COD_CLI CHAVE PRIMARIA, NOME_CLI ...)
TABELA ORÇAMENTOS(COD_ORC, COD_CLI CHAVE CHAVE ESTRANGEIRA, ORCAMENTO...)
TABELA DOCUMENTOS(COD_DOC, COD_ORC CHAVE ESTRANGEIRA, COD_CLI CHAVE CHAVE ESTRANGEIRA, DOCUMENTO...)
SELECT C.COD_CLI, C.NOME_CLI, O.COD_ORC, O.ORCAMENTO, D.COD_DOC, D.DOCUMENTO
FROM CLIENTES C
JOIN ORCAMENTOS O
ON C.COD_CLI = O.COD_CLI
JOIN DOCUMENTOS D
ON O.COD_ORC = D.COD_ORC
WHERE C.NOME_CLI LIKE ´RAFAELA¬´ /*OU WHERE NOME_CLI = ´RAFAELA DOS
SANTOS´ */
IRÁ TE RETORNAR TODOS OS DOCUMENTOS E ORCAMENTOS DE UM CLIENTE...
SELECT C.COD_CLI, C.NOME_CLI, O.COD_ORC, O.ORCAMENTO, D.COD_DOC, D.DOCUMENTO
FROM CLIENTES C
JOIN ORCAMENTOS O
ON C.COD_CLI = O.COD_CLI
JOIN DOCUMENTOS D
ON O.COD_ORC = D.COD_ORC
WHERE C.NOME_CLI LIKE ´RAFAELA¬´ /*OU WHERE NOME_CLI = ´RAFAELA DOS
SANTOS´ */
AND COD_ORC = ´002´
IRÁ RETORNAR OQUE VC QUER...
PS1:
TEM ALGUNS TRUCKS LEGAIS, SE VC FOR EXIBIR EM UM DBGRID, VC PODE FAZER COM QUE O EVENTO ONDBCLIK(CLIQUE DUPLO) RETORNE SÓ OS DOCS DAQUELE ORÇAMENTO...
PS2:
SE VC VAI PESQUISAR 2X DE QQ MANEIRA, DA PRIMEIRA VEZ VC NÃO PRECISA MOSTRAR TODOS OS DOCUMENTOS... FICARIA ASSIM A PRIMEIRA QUERY
SELECT C.COD_CLI, C.NOME_CLI, O.COD_ORC, O.ORCAMENTO
FROM CLIENTES C
JOIN ORCAMENTOS O
ON C.COD_CLI = O.COD_CLI
WHERE C.NOME_CLI LIKE ´RAFAELA¬´ /*OU WHERE NOME_CLI = ´RAFAELA DOS
SANTOS´ */
GOSTEI 0
Bilouro
20/03/2003
QQ DUVIDA...
[]´S
[]´S
GOSTEI 0