Instrução SQL

Delphi

08/03/2005

Para selecionar os itens de uma venda, tenho a seguinte consulta SQL em uma query:
´
SELECT VENDAMESTRE.*, VENDADETALHE.*,
PRODUTOS.DESCRICAO AS DESCRICAOPRODUTO FROM VENDAMESTRE
INNER JOIN VENDADETALHE ON (VENDAMESTRE.CODIGOMESTRE =
VENDADETALHE.CODIGOMESTRE)
INNER JOIN PRODUTOS ON (VENDADETALHE.PRODUTO = PRODUTOS.CODIGO)
WHERE
VENDAMESTRE.DATA BETWEEN :VDtInicial and :VDtFinal
´
Funciona beleza.
As tabelas vendamestre e vendadetalhe referem-se às vendas de produtos. Mas tenho venda de produtos também no módulo serviços, onde junto com serviços, também são vendidos itens de produtos iguais aos da venda normal. São as tabelas SERVICOSMESTRE E SERVICOSPECAS.
O que eu preciso agora é nessa mesma instrução sql, incluir os itens da tabela SERVICOPECAS que é detalhe da tabela SERVICOMESTRE.
Isso é possível? Como ficaria a instrução SQL?
Obrigado.


Valdirdill

Valdirdill

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

08/03/2005

talvez com union seu problema seja resolvido:

SELECT VENDAMESTRE.*, VENDADETALHE.*,
PRODUTOS.DESCRICAO AS DESCRICAOPRODUTO
FROM VENDAMESTRE
INNER JOIN VENDADETALHE ON (VENDAMESTRE.CODIGOMESTRE =
VENDADETALHE.CODIGOMESTRE)
INNER JOIN PRODUTOS ON (VENDADETALHE.PRODUTO = PRODUTOS.CODIGO)
WHERE
VENDAMESTRE.DATA BETWEEN :VDtInicial and :VDtFinal

UNION ALL

SELECT SERVICOMESTRE.*, SERVICOPECAS.*,
PRODUTOS.DESCRICAO AS DESCRICAOPRODUTO
FROM SERVICOMESTRE
INNER JOIN SERVICOPECAS ON (SERVICOPECAS.CODIGOMESTRE =
SERVICOMESTRE.CODIGOMESTRE)
INNER JOIN PRODUTOS ON (PRODUTOS.CODIGO = SERVICOPECAS.PRODUTO)
WHERE
SERVICOMESTRE.DATA BETWEEN :VDtInicial and :VDtFinal


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

08/03/2005

uma observação: só será possivel a seleção de todos os campos caso as tabelas sejam idênticas. o ideal seria exibir somente os campos necessários, desde que haja campos iguais em ambas tabelas.


GOSTEI 0
POSTAR