Fórum SERÁ QUE ALGUÉM SABE??? #147751
20/03/2003
0
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
Curtir tópico
+ 0Posts
20/03/2003
Bilouro
QUAIS CAMPOS VC TEM E QUAIS VC QUER FILTRAR...
[]´S
Gostei + 0
20/03/2003
Okama
and DOCUMENTO = ´documento´
É isso???
Gostei + 0
20/03/2003
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
20/03/2003
Leao
Query.SQL.Text:=´SELECT clientes.*, orcamentos.* FROM orcamentos INNER JOIN clientes ON clientes.cod = orcamentos.CodCliente´; Query.Open;
Gostei + 0
20/03/2003
Rafaela
Gostei + 0
20/03/2003
Aroldo Zanela
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
20/03/2003
Bilouro
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
20/03/2003
Bilouro
[]´S
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)