Fórum Sub Select no Firebird 1.0 #15121
03/02/2010
0
FROM (
SELECT C.QTDE, C.FUNCIONARIO, C.ITEM1 AS ITEM, C.TAMANHO,
CAST(C.DATA AS DATE) AS DATA FROM COMANDAS_ITENS_CONSULTA C
WHERE C.DATA BETWEEN :DATAINI AND :DATAFIM AND C.CAIXA BETWEEN :CAIXAINI AND :CAIXAFIM AND
C.FUNCIONARIO <> :BRANCO AND FILIAL = :FILIAL
UNION ALL
SELECT C.QTDE, C.FUNCIONARIO, C.ITEM2 AS ITEM, C.TAMANHO, CAST(C.DATA AS DATE) AS DATA
FROM COMANDAS_ITENS_CONSULTA C
WHERE C.DATA BETWEEN :DATAINI AND :DATAFIM AND C.CAIXA BETWEEN :CAIXAINI AND :CAIXAFIM AND
C.FUNCIONARIO <> :BRANCO AND FILIAL = :FILIAL
UNION ALL
SELECT C.QTDE, C.FUNCIONARIO, C.ITEM3 AS ITEM, C.TAMANHO, CAST(C.DATA AS DATE) AS DATA
FROM COMANDAS_ITENS_CONSULTA C
WHERE C.DATA BETWEEN :DATAINI AND :DATAFIM AND C.CAIXA BETWEEN :CAIXAINI AND :CAIXAFIM AND
C.FUNCIONARIO <> :BRANCO AND FILIAL = :FILIAL
UNION ALL
SELECT C.QTDE, C.FUNCIONARIO, C.ITEM4 AS ITEM, C.TAMANHO, CAST(C.DATA AS DATE) AS DATA
FROM COMANDAS_ITENS_CONSULTA C
WHERE C.DATA BETWEEN :DATAINI AND :DATAFIM AND C.CAIXA BETWEEN :CAIXAINI AND :CAIXAFIM AND
C.FUNCIONARIO <> :BRANCO AND FILIAL = :FILIAL
UNION ALL
SELECT C.QTDE, C.FUNCIONARIO, C.BORDA AS ITEM, C.TAMANHO, CAST(C.DATA AS DATE) AS DATA
FROM COMANDAS_ITENS_CONSULTA C
WHERE C.DATA BETWEEN :DATAINI AND :DATAFIM AND C.CAIXA BETWEEN :CAIXAINI AND :CAIXAFIM AND
C.FUNCIONARIO <> :BRANCO AND FILIAL = :FILIAL
A, CARDAPIO B WHERE A.ITEM = B.CODIGO
Silvia Berezin
Curtir tópico
+ 0Posts
03/02/2010
Rodrigo Mourão
Gostei + 0
04/02/2010
Silvia Berezin
Gostei + 0
08/02/2010
Silvia Berezin
Gostei + 0
08/02/2010
Rodrigo Mourão
Gostei + 0
10/02/2010
Rodrigo Mourão
Bem tente o seguinte, primeiro crie a view:
CREATE VIEW VW_DADOS(
QTDE,
FUNCIONARIO,
ITEM,
TAMANHO,
DATA,
CAIXA,
FILIAL)
AS
SELECT C.QTDE,
C.FUNCIONARIO,
C.ITEM1 AS ITEM,
C.TAMANHO,
CAST(C.DATA AS DATE) AS DATA,
C.CAIXA,
C.FILIAL
FROM COMANDAS_ITENS_CONSULTA C
UNION ALL
SELECT C.QTDE,
C.FUNCIONARIO,
C.ITEM2 AS ITEM,
C.TAMANHO,
CAST(C.DATA AS DATE) AS DATA,
C.CAIXA,
C.FILIAL
FROM COMANDAS_ITENS_CONSULTA C
UNION ALL
SELECT C.QTDE,
C.FUNCIONARIO,
C.ITEM3 AS ITEM,
C.TAMANHO,
CAST(C.DATA AS DATE) AS DATA,
C.CAIXA,
C.FILIAL
FROM COMANDAS_ITENS_CONSULTA C
UNION ALL
SELECT C.QTDE,
C.FUNCIONARIO,
C.ITEM4 AS ITEM,
C.TAMANHO,
CAST(C.DATA AS DATE) AS DATA,
C.CAIXA,
C.FILIAL
FROM COMANDAS_ITENS_CONSULTA C
UNION ALL
SELECT C.QTDE,
C.FUNCIONARIO,
C.BORDA AS ITEM,
C.TAMANHO,
CAST(C.DATA AS DATE) AS DATA,
C.CAIXA,
C.FILIAL
FROM COMANDAS_ITENS_CONSULTA C;
Este view faz os unios internos que estava no subselect. Feito isso faremos um join de cardapio com a view e parametrizamos no JOIN:
SELECT D.FUNCIONARIO, D.ITEM, C.DESCRICAO, D.TAMANHO, D.QTDE, D.DATA
FROM VW_DADOS D, CARDAPIO C
WHERE D.ITEM = C.CODIGO
AND D.DATA BETWEEN :DATAINI AND :DATAFIM
AND D.CAIXA BETWEEN :CAIXAINI AND :CAIXAFIM
AND D.FILIAL = :FILIAL
AND D.FUNCIONARIO <> :BRANCO
Espero ter ajudado!!!
Abs!!
Gostei + 0
14/02/2010
Rodrigo Mourão
O Select ajudou ? Podemos encerrar o chamado ?
Att,
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)