Fórum Sub Select no Firebird 1.0 #15121

03/02/2010

0

Tenho uma versão antiga do meu sistema que ainda usa Firebird 1.0 e preciso rodar um Sub Select que já funciona no Firebird 2.1, porém na versão 1 está apresentando problema, não reconhece o SubSelect. Como posso adaptá-lo para rodar no fire 1.0 ?   Obrigada    SELECT A.FUNCIONARIO, A.ITEM, B.DESCRICAO, A.TAMANHO, A.QTDE, CAST(A.DATA AS DATE) AS DATA
 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

Silvia Berezin

Responder

Posts

03/02/2010

Rodrigo Mourão

Olá Silvia,   Bem hoje eu trabalho com firebird, porem 2.0 e 2.1 nao cheguei a pegar o 1.0. Acredito que com uma view ou entao uma procedure selecional a gente possa conseguir algo.   Para que eu possa testar preciusaria que me mandasse o scrtip do bacno com alguns dados para teste. Com isso eu realizo alguns teste para tentar resolver o problema.   Voce pode utilizar o disco virtual.   https://www.devmedia.com.br/imagens/videos/4/Video%20disco%20virtual.htm     No aguardo !!   Abs!!  
Responder

Gostei + 0

04/02/2010

Silvia Berezin

Oi Rodrigo   O arquivo está em   http://video.devmedia.com.br/discovirtual/45319/SilviaPchevuzinske/INFOCOOK.rar   Por gentileza, assim que responder, me mande um e-mail avisando, pois tenho que entrar no site da Devmedia para saber se já tem resposta.   Obrigada   Silvia silvia@infosystem.com.br  
Responder

Gostei + 0

08/02/2010

Silvia Berezin

Rodrigo, recebeu meu arquivo ? Está no disco virtual, conforme você pediu.
Responder

Gostei + 0

08/02/2010

Rodrigo Mourão

Recebi sim, Estou baixando agora, irei analisar e logo lhe respondo. Quanto a enviar email por ordem da administração todo o contato com o cliente deve ser fieto via sistema de consultoria. Lamento. Att,
Responder

Gostei + 0

10/02/2010

Rodrigo Mourão

Olá Desculpe a demora.

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!!



Responder

Gostei + 0

14/02/2010

Rodrigo Mourão

Olá Silvia,

O Select ajudou ?  Podemos encerrar o chamado ?

Att,


Responder

Gostei + 0

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

Aceitar