Subject | Re: [firebird-support] Invalid BLR - BAD BLR - Help |
---|---|
Author | Kurt Schneider |
Post date | 2006-03-03T17:22:04Z |
Hello Rick
Thanks for the Tip. Exactly thus, the problem persists. It sees the
SQL_Problem_Short.txt Example in attach. I reduced the tables name and the
size of the SQL. Still thus, the problem continues. We go the search of
the solution. ;-)
PS: The same act was executed in View (reduce the tables names).
Thanks.
Thanks for the Tip. Exactly thus, the problem persists. It sees the
SQL_Problem_Short.txt Example in attach. I reduced the tables name and the
size of the SQL. Still thus, the problem continues. We go the search of
the solution. ;-)
PS: The same act was executed in View (reduce the tables names).
Thanks.
On 3/3/06, Rick Debay <rdebay@...> wrote:
>
> To easily shorten the queries, use aliases instead of the table name.
>
> SELECT
> TABLE_1.FOO
> FROM
> TABLE_1
>
> Becomes
>
> SELECT
> t1.FOO
> FROM
> TABLE_1 t1
>
>
> -----Original Message-----
> From: firebird-support@yahoogroups.com [mailto:
> firebird-support@yahoogroups.com] On Behalf Of Kurt Schneider
> Sent: Friday, March 03, 2006 6:56 AM
> To: firebird-support@yahoogroups.com
> Subject: Re: [firebird-support] Invalid BLR - BAD BLR - Help
>
> Hello Helen and All.
>
> Thanks for help-me.
>
> I'm Sorry you does not believe, but the SQL that I need really possesss
> the
> size that I indicated. :-)
>
> Your Questions:
>
> Q: What is "long"? There is a limit of 64 Kb in the length of one SQL
> statement and a limit of 48 Kb in the length of a plan.
>
> R: Whel, and "long" sql is igual a Attached File SQL_Problem.txt. See the
> Sql and see the View. The Sql is execute from .EXE (my application), and
> consult a VIEW on Database.
>
> Q: Show exactly the problem statement *and* the plan that is produced
> when you prepare a similar statement that does not fail.
> Also state
> a) whether you have triggers defined for the view.
> Ra: No, not have triggers for a View or triggers on tables they compose a
> View.
>
> b) what is the dialect of the database
> Rb: Sql Dialect 3
>
> c) what you mean by "an unic view on database"
> Rc: For testing, i have create 4 database, to know (Firebird, Mysql,
> Oracle
> and Sql Server) with the same number of tables, Store Procedure and a unic
> view (for testing). The View result the same data from 4 database when
> proceed and SQL ( * ) All.
> But, the attached SQL_Problem.txt contains the sql executed and the
> databases, and in Firebird return Error.
>
> But, see the SQL_OK.txt. One SELECT to view is deleted, and the sql
> returns
> ok, not error (BAD BLR). The SQL_OK.txt contains 5 (five) acess to VIEW,
> and
> the SQL_PROBLEM.txt 6 (six) acess and return Error.
>
> For the same error, execute and select with 28 unions, that returns the
> same
> error (i think). ;-)
>
> I think the limit or the BLR (Binary Language Reference) have a limit size
> for SQL.
>
> Help.... :-)
>
> Thanks
>
> ----------
>
> SELECT
> TB_PRODUTOS_1.CODIGOPRODUTO,
> TB_PRODUTOS_1.DESCRICAOPRODUTO,
> TB_PRODUTOS_1.CODIGOORIGINALFABRICANTE,
> TB_PRODUTOS_1.CODIGOCSTORIGEM,
> TB_PRODUTOS_1.CONTROLALOTES,
> TB_PRODUTOS_1.CODIGOTIPOPRODUTO,
> TB_UNIDADEMEDIDA.ABREVIADOUNIDADEMEDIDA,
> TB_MARCAS.DESCRICAOMARCAS,
> TB_CLASSES.DESCRICAOCLASSES,
> TB_PRODUTOSEMPRESA.ATIVOPRODUTO,
> TB_PRODUTOS_1.ORDEMLIGCATEGORIACLASSES,
> COALESCE(TB_APV.VLRCUSTOI,0) AS VLRCUSTOI,
> COALESCE(TB_APV.TXICMSSAIDASAPV,0) AS TXICMSSAIDASAPV,
> COALESCE(TB_APV.TXCUSTOOPERSAIDASAPV,0) AS TXCUSTOOPERSAIDASAPV,
> TB_LIGCATEGORIACLASSES.CODIGOCATEGORIAPRODUTO,
> TB_PRODUTOS_1.TAXAFUNRURALPRODUTO,
> TB_PRODUTOS_1.TAXAPISPRODUTO,
> TB_PRODUTOS_1.TAXACOFINSPRODUTO,
> TB_PRODUTOS_1.TAXAFETHABPRODUTO,
> TB_PRODUTOSSAFRA.ESTOQUEMINIMOPRODUTO,
> TB_PRODUTOSSAFRA.COMISSAOSOBREVENDA,
> TB_PRODUTOSSAFRA.COMISSAOSOBRECOMPRA,
> TB_PRODUTOSSAFRA.ORIGEMTAXACOMISSAO,
> (SELECT
> CASE TB_PEDIDOS_2.CODIGOTIPOPEDIDO
> WHEN 'N' THEN
> SUBSTRING(CAST('Pedido: ' || TB_PEDIDOS_2.NUMSEQPEDIDO || ' - ' ||
> TB_CLIENTES_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
> ELSE
> SUBSTRING(CAST('Remessa: ' || TB_PEDIDOS_2.NUMSEQPEDIDO || ' - ' ||
> TB_CLIENTES_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
> END
> FROM TB_PRODUTOSMOV TB_PRODUTOSMOV_2
> INNER JOIN TB_PEDIDOS TB_PEDIDOS_2 ON
> TB_PRODUTOSMOV_2.ORDEMPEDIDO = TB_PEDIDOS_2.ORDEMPEDIDO
> INNER JOIN TB_CLIENTES TB_CLIENTES_2 ON
> TB_PEDIDOS_2.CODIGOCLIENTE = TB_CLIENTES_2.CODIGOCLIENTE
> WHERE TB_PRODUTOSMOV_2.ORDEMPRODUTOMOV =
> TB_PRODUTOSMOV_1.ORDEMPRODUTOMOV)
> AS vORIGEMPRODUTO,
> CAST('N' as CHAR(1)) as vJaSelecionou,
> TB_PRODUTOSMOV.*,
> (SELECT FIRST 1
> (
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOCLIENTE = 221
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> -
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOCLIENTE = 221
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'S'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> +
> (SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 5
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOCLIENTE = 221
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO =
> 3))
> ))
> FROM TB_SEXO) as vAFATURAR,
> CASE
> WHEN CODIGOCATEGORIAPRODUTO = 3 AND CONTROLALOTES = 'S' THEN
> (SELECT COALESCE(Count(TB_LOTESSEMENTES.CODIGOPRODUTO),0)
> FROM TB_LOTESSEMENTES
> WHERE TB_LOTESSEMENTES.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND TB_LOTESSEMENTES.CODIGOEMPRESA = 1
> AND TB_LOTESSEMENTES.CODIGOCLIENTE = 221
> AND TB_LOTESSEMENTES.CODIGOSTATUS = 'A')
> ELSE 0
> END as vTemLote,
> CAST(0 AS INTEGER) AS VSaldo,
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> -
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'S'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> +
> (SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 5
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO =
> 3))
> ) AS VSaldoEntregaFutura
>
>
> FROM
> TB_PRODUTOS TB_PRODUTOS_1
> INNER JOIN TB_PRODUTOSMOV TB_PRODUTOSMOV_1
> ON (TB_PRODUTOS_1.CODIGOPRODUTO = TB_PRODUTOSMOV_1.CODIGOPRODUTO)
> INNER JOIN TB_PEDIDOS
> ON TB_PRODUTOSMOV_1.ORDEMPEDIDO = TB_PEDIDOS.ORDEMPEDIDO
> INNER JOIN TB_PRODUTOSEMPRESA
> ON (TB_PRODUTOSEMPRESA.CODIGOPRODUTO = TB_PRODUTOS_1.CODIGOPRODUTO)
> INNER JOIN TB_UNIDADEMEDIDA
> ON (TB_UNIDADEMEDIDA.CODIGOUNIDADEMEDIDA =
> TB_PRODUTOS_1.CODIGOUNIDADEMEDIDA)
> INNER JOIN TB_MARCAS
> ON (TB_MARCAS.CODIGOMARCAS = TB_PRODUTOS_1.CODIGOMARCAS)
> INNER JOIN TB_LIGCATEGORIACLASSES
> ON (TB_LIGCATEGORIACLASSES.ORDEMLIGCATEGORIACLASSES =
> TB_PRODUTOS_1.ORDEMLIGCATEGORIACLASSES)
> INNER JOIN TB_CLASSES
> ON (TB_CLASSES.CODIGOCLASSES = TB_LIGCATEGORIACLASSES.CODIGOCLASSES)
> INNER JOIN TB_CATEGORIAPRODUTOS
> ON (TB_CATEGORIAPRODUTOS.CODIGOCATEGORIAPRODUTO =
> TB_LIGCATEGORIACLASSES.CODIGOCATEGORIAPRODUTO)
> INNER JOIN TB_PRODUTOSSAFRA
> ON TB_PRODUTOS_1.CODIGOPRODUTO = TB_PRODUTOSSAFRA.CODIGOPRODUTO
> LEFT JOIN TB_APV
> ON (TB_APV.CODIGOPRODUTO = TB_PRODUTOSSAFRA.CODIGOPRODUTO
> AND TB_APV.CODIGOEMPRESA = TB_PRODUTOSSAFRA.CODIGOEMPRESA)
> WHERE TB_PEDIDOS.ORDEMPEDIDO = 61
> AND TB_PRODUTOSEMPRESA.CODIGOEMPRESA = 1
> AND TB_PRODUTOSSAFRA.CODIGOSAFRA = 1
> ORDER BY TB_PRODUTOS_1.DESCRICAOPRODUTO, TB_PRODUTOSMOV_1.ORDEMPRODUTOMOV;
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ----------
>
> CREATE VIEW VW_ESPRODUTO (
> CODIGOEMPRESA,
> CODIGOCLIENTE,
> CODIGOSAFRA,
> CODIGOPRODUTO,
> CODIGOCFOP,
> CODIGOOPERCFOP,
> CODIGOOPERCOMPCFOP,
> VCODIGOMOV,
> CODIGOOPERESTOQUE,
> VCODIGOMOVORIGEM,
> VCODIGOMOVDESTINO,
> VQUANT)
> AS
> /* ESPRODUTO se refere a todas as movimenta��es de Entrada e Sa�da dos
> Produtos
>
> ESTA VIEW JUNTA TODAS AS QUANTIDADES DE PRODUTOS MOVIMENTADOS EM
> vCodigoMov Descri��o
> 1 PEDIDO
> 2 REMESSA
> 3 NOTA FISCAL
> 4 TRANSFERENCIA DE PRODUTO EM DEP�SITO
> 5 WARRANT
> 6 ROMANEIO
>
>
>
> CODIGOOPERESTOQUE
> E - Entrada / S - Sa�da
> Coment�rio: Isso foi necess�rio pois � possivel que um Compra -
> Normal seja Interpretada como
> E - Entrada em Algumas Situa��es (Remessa Entrega
> Futura)
> S - Sa�da em Algumas Situa��es (Remessa Entrega Futura)
>
> VCODIGOMOVORIGEM / VCODIGOMOVDESTINO, --Negocio Aqui e N� Forte por
> Causa da Entrega Futura (Em Teste Forte)
> Bem, para poder controlar as Entrega Futura, na Formula, �
> Necess�rio acresentar por Exemplo se uma
> Nota Fiscal foi Gerada Direta (NFP -> NFP) ou se foi gerada de um
> Pedido (PED->NFP) ou Remessa (ORD->NFP)
> 1 - 1 Pedido Lancado Direto
> 1 - 2 Pedido Gerou Remessa (Armazena dentro da Remessa)
> 1 - 3 Pedido Gerou Nota (Armazena dentro da Nota)
> 2 - 2 Remessa Lancado Direto
> 2 - 3 Remessa Gerou Nota (Armazena dentro da Nota)
> 3 - 3 Nota Lancada Direto (Nota Lancada Direta)
> 4 - 3 Nota Gerada pela TRF (Armazena na NF)
> 5 - 3 Nota Gerada pela WRT (Armazena na NF)
> 6 - 3 Nota Gerada pelo Romaneio (Armazena na NF)
>
> TOTALIZANDO POR
> CODIGOEMPRESA, CODIGOSAFRA, CODIGOCLIENTE, CODIGOPRODUTO,
> CODIGOOPERCFOP, OPERCOMPCFOP E CFOP
> */
>
> /* ---------- 1 - Pedidos de Compra ----------------
> 1 - 1 Pedido Lancado Direto */
> SELECT
> TB_PEDIDOS.CODIGOEMPRESA,
> TB_PEDIDOS.CODIGOCLIENTE,
> TB_PEDIDOS.CODIGOSAFRA,
> TB_PRODUTOSMOV.CODIGOPRODUTO,
> TB_PEDIDOS.CODIGOCFOP,
> TB_LIGCFOP.CODIGOOPERCFOP,
> TB_LIGCFOP.CODIGOOPERCOMPCFOP,
> CAST(1 AS INTEGER) as vCodigoMov,
> TB_PEDIDOS.CODIGOOPERESTOQUE,
>
> --Gerado Direto pelo Pedido--
> CAST(1 AS INTEGER) as VCODIGOMOVORIGEM,
> CAST(1 AS INTEGER) as VCODIGOMOVDESTINO,
>
> (COALESCE(Sum(TB_PRODUTOSMOV.QUANTPRODUTOMOV),0) -
> COALESCE(Sum(TB_LIGFATURAS.FATURADALIGFATURA), 0)) AS vQuant
> FROM
> (TB_LIGCFOP INNER JOIN
> ((TB_PEDIDOS INNER JOIN TB_PRODUTOSMOV ON TB_PEDIDOS.ORDEMPEDIDO =
> TB_PRODUTOSMOV.ORDEMPEDIDO)
> INNER JOIN TB_CFOP ON TB_PEDIDOS.CODIGOCFOP = TB_CFOP.CODIGOCFOP)
> ON TB_LIGCFOP.ORDEMLIGCFOP = TB_CFOP.ORDEMLIGCFOP)
> LEFT JOIN TB_LIGFATURAS ON TB_PRODUTOSMOV.ORDEMPRODUTOMOV =
> TB_LIGFATURAS.ORDEMPRODUTOMOV
> WHERE TB_PEDIDOS.ORIGEMLANCA='PED'
> AND TB_PEDIDOS.CODIGOTIPOPEDIDO='N'
> AND TB_PEDIDOS.CODIGOOPERESTOQUE='E'
> AND TB_PEDIDOS.CODIGOCFOP <> 11 --Desconsidera a CFOP: SEM MOVIMENTA��O
> GROUP BY 1,2,3,4,5,6,7,8,9,10,11
>
> UNION
>
>
> /* ---------- 2 - Pedidos de Venda ----------------
> 1 - 1 Pedido Lancado Direto */
> SELECT
> TB_PEDIDOS.CODIGOEMPRESA,
> TB_PEDIDOS.CODIGOCLIENTE,
> TB_PEDIDOS.CODIGOSAFRA,
> TB_PRODUTOSMOV.CODIGOPRODUTO,
> TB_PEDIDOS.CODIGOCFOP,
> TB_LIGCFOP.CODIGOOPERCFOP,
> TB_LIGCFOP.CODIGOOPERCOMPCFOP,
> CAST(1 AS INTEGER) as vCodigoMov,
> TB_PEDIDOS.CODIGOOPERESTOQUE,
>
> --Gerado Direto pelo Pedido--
> CAST(1 AS INTEGER) as VCODIGOMOVORIGEM,
> CAST(1 AS INTEGER) as VCODIGOMOVDESTINO,
>
> (COALESCE(Sum(TB_PRODUTOSMOV.QUANTPRODUTOMOV),0) -
> COALESCE(Sum(TB_LIGFATURAS.FATURADALIGFATURA), 0)) AS vQuant
> FROM
> (TB_LIGCFOP INNER JOIN
> ((TB_PEDIDOS INNER JOIN TB_PRODUTOSMOV ON TB_PEDIDOS.ORDEMPEDIDO =
> TB_PRODUTOSMOV.ORDEMPEDIDO)
> INNER JOIN TB_CFOP ON TB_PEDIDOS.CODIGOCFOP = TB_CFOP.CODIGOCFOP)
> ON TB_LIGCFOP.ORDEMLIGCFOP = TB_CFOP.ORDEMLIGCFOP)
> LEFT JOIN TB_LIGFATURAS ON TB_PRODUTOSMOV.ORDEMPRODUTOMOV =
> TB_LIGFATURAS.ORDEMPRODUTOMOV
> WHERE TB_PEDIDOS.ORIGEMLANCA='PED'
> AND TB_PEDIDOS.CODIGOTIPOPEDIDO='N'
> AND TB_PEDIDOS.CODIGOOPERESTOQUE='S'
>
> GROUP BY 1,2,3,4,5,6,7,8,9,10,11
>
> UNION
>
> /* ---------- 3 - Remessa de Compra ----------------
> 1 - 2 Pedido Gerou Remessa (Armazena dentro da Remessa)
> 2 - 2 Remessa Lancado Direto */
> SELECT
> TB_PEDIDOS.CODIGOEMPRESA,
> TB_PEDIDOS.CODIGOCLIENTE,
> TB_PEDIDOS.CODIGOSAFRA,
> TB_PRODUTOSMOV.CODIGOPRODUTO,
> TB_PEDIDOS.CODIGOCFOP,
> TB_LIGCFOP.CODIGOOPERCFOP,
> TB_LIGCFOP.CODIGOOPERCOMPCFOP,
> CAST(2 AS INTEGER) as vCodigoMov,
> TB_PEDIDOS.CODIGOOPERESTOQUE,
> CASE
> /*REMESSA GERADO DIRETO*/
> WHEN (TB_PEDIDOS.TBORDEMPEDIDO IS NULL) THEN
> CAST(2 AS INTEGER)
> /*REMESSA GERADO PELO PEDIDO*/
> ELSE
> CAST(1 AS INTEGER)
> END as VCODIGOMOVORIGEM,
> CAST(2 AS INTEGER) as VCODIGOMOVDESTINO,
> (COALESCE(Sum(TB_PRODUTOSMOV.QUANTPRODUTOMOV),0) -
> COALESCE(Sum(TB_LIGFATURAS.FATURADALIGFATURA), 0)) AS vQuant
> FROM
> (TB_LIGCFOP INNER JOIN
> ((TB_PEDIDOS INNER JOIN TB_PRODUTOSMOV ON TB_PEDIDOS.ORDEMPEDIDO =
> TB_PRODUTOSMOV.ORDEMPEDIDO)
> INNER JOIN TB_CFOP ON TB_PEDIDOS.CODIGOCFOP = TB_CFOP.CODIGOCFOP)
> ON TB_LIGCFOP.ORDEMLIGCFOP = TB_CFOP.ORDEMLIGCFOP)
> LEFT JOIN TB_LIGFATURAS ON TB_PRODUTOSMOV.ORDEMPRODUTOMOV =
> TB_LIGFATURAS.ORDEMPRODUTOMOV
> WHERE TB_PEDIDOS.ORIGEMLANCA='PED'
> AND TB_PEDIDOS.CODIGOTIPOPEDIDO='R'
> AND TB_PEDIDOS.CODIGOOPERESTOQUE='E'
>
> GROUP BY 1,2,3,4,5,6,7,8,9,10,11
>
> UNION
>
> /* ---------- 4 - Remessa de Venda ----------------
> 1 - 2 Pedido Gerou Remessa (Armazena dentro da Remessa)
> 2 - 2 Remessa Lancado Direto */
> SELECT
> TB_PEDIDOS.CODIGOEMPRESA,
> TB_PEDIDOS.CODIGOCLIENTE,
> TB_PEDIDOS.CODIGOSAFRA,
> TB_PRODUTOSMOV.CODIGOPRODUTO,
> TB_PEDIDOS.CODIGOCFOP,
> TB_LIGCFOP.CODIGOOPERCFOP,
> TB_LIGCFOP.CODIGOOPERCOMPCFOP,
> CAST(2 AS INTEGER) as vCodigoMov,
> TB_PEDIDOS.CODIGOOPERESTOQUE,
> CASE
> /*REMESSA GERADO DIRETO*/
> WHEN (TB_PEDIDOS.TBORDEMPEDIDO IS NULL) THEN
> CAST(2 AS INTEGER)
> /*REMESSA GERADO PELO PEDIDO*/
> ELSE
> CAST(1 AS INTEGER)
> END as VCODIGOMOVORIGEM,
> CAST(2 AS INTEGER) as VCODIGOMOVDESTINO,
>
> (COALESCE(Sum(TB_PRODUTOSMOV.QUANTPRODUTOMOV),0) -
> COALESCE(Sum(TB_LIGFATURAS.FATURADALIGFATURA), 0)) AS vQuant
> FROM
> (TB_LIGCFOP INNER JOIN
> ((TB_PEDIDOS INNER JOIN TB_PRODUTOSMOV ON TB_PEDIDOS.ORDEMPEDIDO =
> TB_PRODUTOSMOV.ORDEMPEDIDO)
> INNER JOIN TB_CFOP ON TB_PEDIDOS.CODIGOCFOP = TB_CFOP.CODIGOCFOP)
> ON TB_LIGCFOP.ORDEMLIGCFOP = TB_CFOP.ORDEMLIGCFOP)
> LEFT JOIN TB_LIGFATURAS ON TB_PRODUTOSMOV.ORDEMPRODUTOMOV =
> TB_LIGFATURAS.ORDEMPRODUTOMOV
> WHERE TB_PEDIDOS.ORIGEMLANCA='PED'
> AND TB_PEDIDOS.CODIGOTIPOPEDIDO='R'
> AND TB_PEDIDOS.CODIGOOPERESTOQUE='S'
>
>
> GROUP BY 1,2,3,4,5,6,7,8,9,10,11
>
> UNION
>
> /* ---------- 5 - Nota Fiscal de Compra ----------------
> 1 - 3 Pedido Gerou Nota (Armazena dentro da Nota)
> 2 - 3 Remessa Gerou Nota (Armazena dentro da Nota)
> 3 - 3 Nota Lancada Direto (Nota Lancada Direta)
> 4 - 3 Nota Gerada pela TRF (Armazena na NF)
> 5 - 3 Nota Gerada pela WRT (Armazena na NF)
> 6 - 3 Nota Gerada pelo Romaneio (Armazena na NF)*/
>
> SELECT
> TB_NOTAFISCAL.CODIGOEMPRESA,
> TB_NOTAFISCAL.CODIGOCLIENTE,
> TB_NOTAFISCAL.CODIGOSAFRA,
> TB_PRODUTOSMOV.CODIGOPRODUTO,
> TB_NOTAFISCAL.CODIGOCFOP,
> TB_LIGCFOP.CODIGOOPERCFOP,
> TB_LIGCFOP.CODIGOOPERCOMPCFOP,
> CAST(3 AS INTEGER) as vCodigoMov,
> TB_NOTAFISCAL.CODIGOOPERESTOQUE,
>
> CASE
> /*PEDIDO GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'PED') THEN
> CAST(1 AS INTEGER)
> /*REMESSA GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'REM') THEN
> CAST(2 AS INTEGER)
> /*TRF GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'TRF') THEN
> CAST(4 AS INTEGER)
> /*WARRANT GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'WRT') THEN
> CAST(5 AS INTEGER)
> /*ROMANEIO GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'ROM') THEN
> CAST(6 AS INTEGER)
> /*NOTA GERADA PELA NOTA*/
> ELSE
> CAST(3 AS INTEGER)
> END as VCODIGOMOVORIGEM,
> CAST(3 AS INTEGER) as VCODIGOMOVDESTINO,
>
> (COALESCE(Sum(TB_PRODUTOSMOV.QUANTPRODUTOMOV),0) -
> COALESCE(Sum(TB_LIGFATURAS.FATURADALIGFATURA), 0)) AS vQuant
> FROM
> (TB_LIGCFOP INNER JOIN
> ((TB_NOTAFISCAL INNER JOIN TB_PRODUTOSMOV ON TB_NOTAFISCAL.ORDEMNF
> = TB_PRODUTOSMOV.ORDEMNF)
> INNER JOIN TB_CFOP ON TB_NOTAFISCAL.CODIGOCFOP =
> TB_CFOP.CODIGOCFOP) ON TB_LIGCFOP.ORDEMLIGCFOP = TB_CFOP.ORDEMLIGCFOP)
> LEFT JOIN TB_LIGFATURAS ON TB_PRODUTOSMOV.ORDEMPRODUTOMOV =
> TB_LIGFATURAS.TBORDEMPRODUTOMOV
> WHERE TB_NOTAFISCAL.ORDEMLIGTIPONF = 01 /*Nota Fiscal de Produto*/
> AND TB_NOTAFISCAL.CODIGOOPERESTOQUE = 'E'
> AND TB_LIGCFOP.CODIGOOPERCFOP <> 11 --Desconsidera a CFOP: SEM
> MOVIMENTA��O
>
> GROUP BY 1,2,3,4,5,6,7,8,9,10,11
>
> UNION
>
> /* ---------- 6 - Nota Fiscal de Venda ----------------*/
> SELECT
> TB_NOTAFISCAL.CODIGOEMPRESA,
> TB_NOTAFISCAL.CODIGOCLIENTE,
> TB_NOTAFISCAL.CODIGOSAFRA,
> TB_PRODUTOSMOV.CODIGOPRODUTO,
> TB_NOTAFISCAL.CODIGOCFOP,
> TB_LIGCFOP.CODIGOOPERCFOP,
> TB_LIGCFOP.CODIGOOPERCOMPCFOP,
> CAST(3 AS INTEGER) as vCodigoMov,
> TB_NOTAFISCAL.CODIGOOPERESTOQUE,
>
> CASE
> /*PEDIDO GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'PED') THEN
> CAST(1 AS INTEGER)
> /*REMESSA GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'REM') THEN
> CAST(2 AS INTEGER)
> /*TRF GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'TRF') THEN
> CAST(4 AS INTEGER)
> /*WARRANT GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'WRT') THEN
> CAST(5 AS INTEGER)
> /*ROMANEIO GEROU NOTA*/
> WHEN (TB_NOTAFISCAL.ORIGEMLANCA = 'ROM') THEN
> CAST(6 AS INTEGER)
> /*NOTA GERADA PELA NOTA*/
> ELSE
> CAST(3 AS INTEGER)
> END as VCODIGOMOVORIGEM,
> CAST(3 AS INTEGER) as VCODIGOMOVDESTINO,
>
> (COALESCE(Sum(TB_PRODUTOSMOV.QUANTPRODUTOMOV),0) -
> COALESCE(Sum(TB_LIGFATURAS.FATURADALIGFATURA), 0)) AS vQuant
> FROM
> (TB_LIGCFOP INNER JOIN
> ((TB_NOTAFISCAL INNER JOIN TB_PRODUTOSMOV ON TB_NOTAFISCAL.ORDEMNF
> = TB_PRODUTOSMOV.ORDEMNF)
> INNER JOIN TB_CFOP ON TB_NOTAFISCAL.CODIGOCFOP =
> TB_CFOP.CODIGOCFOP) ON TB_LIGCFOP.ORDEMLIGCFOP = TB_CFOP.ORDEMLIGCFOP)
> LEFT JOIN TB_LIGFATURAS ON TB_PRODUTOSMOV.ORDEMPRODUTOMOV =
> TB_LIGFATURAS.TBORDEMPRODUTOMOV
> WHERE TB_NOTAFISCAL.ORDEMLIGTIPONF = 01 /*Nota Fiscal de Produto*/
> AND TB_NOTAFISCAL.CODIGOOPERESTOQUE= 'S'
> AND TB_LIGCFOP.CODIGOOPERCFOP <> 11 --Desconsidera a CFOP: SEM
> MOVIMENTA��O
>
> GROUP BY 1,2,3,4,5,6,7,8,9,10,11
> ;
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> ----------
>
> SELECT
> TB_PRODUTOS_1.CODIGOPRODUTO,
> TB_PRODUTOS_1.DESCRICAOPRODUTO,
> TB_PRODUTOS_1.CODIGOORIGINALFABRICANTE,
> TB_PRODUTOS_1.CODIGOCSTORIGEM,
> TB_PRODUTOS_1.CONTROLALOTES,
> TB_PRODUTOS_1.CODIGOTIPOPRODUTO,
> TB_UNIDADEMEDIDA.ABREVIADOUNIDADEMEDIDA,
> TB_MARCAS.DESCRICAOMARCAS,
> TB_CLASSES.DESCRICAOCLASSES,
> TB_PRODUTOSEMPRESA.ATIVOPRODUTO,
> TB_PRODUTOS_1.ORDEMLIGCATEGORIACLASSES,
> COALESCE(TB_APV.VLRCUSTOI,0) AS VLRCUSTOI,
> COALESCE(TB_APV.TXICMSSAIDASAPV,0) AS TXICMSSAIDASAPV,
> COALESCE(TB_APV.TXCUSTOOPERSAIDASAPV,0) AS TXCUSTOOPERSAIDASAPV,
> TB_LIGCATEGORIACLASSES.CODIGOCATEGORIAPRODUTO,
> TB_PRODUTOS_1.TAXAFUNRURALPRODUTO,
> TB_PRODUTOS_1.TAXAPISPRODUTO,
> TB_PRODUTOS_1.TAXACOFINSPRODUTO,
> TB_PRODUTOS_1.TAXAFETHABPRODUTO,
> TB_PRODUTOSSAFRA.ESTOQUEMINIMOPRODUTO,
> TB_PRODUTOSSAFRA.COMISSAOSOBREVENDA,
> TB_PRODUTOSSAFRA.COMISSAOSOBRECOMPRA,
> TB_PRODUTOSSAFRA.ORIGEMTAXACOMISSAO,
> (SELECT
> CASE TB_PEDIDOS_2.CODIGOTIPOPEDIDO
> WHEN 'N' THEN
> SUBSTRING(CAST('Pedido: ' || TB_PEDIDOS_2.NUMSEQPEDIDO || ' - ' ||
> TB_CLIENTES_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
> ELSE
> SUBSTRING(CAST('Remessa: ' || TB_PEDIDOS_2.NUMSEQPEDIDO || ' - ' ||
> TB_CLIENTES_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
> END
> FROM TB_PRODUTOSMOV TB_PRODUTOSMOV_2
> INNER JOIN TB_PEDIDOS TB_PEDIDOS_2 ON
> TB_PRODUTOSMOV_2.ORDEMPEDIDO = TB_PEDIDOS_2.ORDEMPEDIDO
> INNER JOIN TB_CLIENTES TB_CLIENTES_2 ON
> TB_PEDIDOS_2.CODIGOCLIENTE = TB_CLIENTES_2.CODIGOCLIENTE
> WHERE TB_PRODUTOSMOV_2.ORDEMPRODUTOMOV =
> TB_PRODUTOSMOV_1.ORDEMPRODUTOMOV)
> AS vORIGEMPRODUTO,
> CAST('N' as CHAR(1)) as vJaSelecionou,
> TB_PRODUTOSMOV.*,
> (SELECT FIRST 1
> (
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOCLIENTE = 221
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> -
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOCLIENTE = 221
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'S'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> )
> ))
> FROM TB_SEXO) as vAFATURAR,
> CASE
> WHEN CODIGOCATEGORIAPRODUTO = 3 AND CONTROLALOTES = 'S' THEN
> (SELECT COALESCE(Count(TB_LOTESSEMENTES.CODIGOPRODUTO),0)
> FROM TB_LOTESSEMENTES
> WHERE TB_LOTESSEMENTES.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND TB_LOTESSEMENTES.CODIGOEMPRESA = 1
> AND TB_LOTESSEMENTES.CODIGOCLIENTE = 221
> AND TB_LOTESSEMENTES.CODIGOSTATUS = 'A')
> ELSE 0
> END as vTemLote,
> CAST(0 AS INTEGER) AS VSaldo,
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> -
> ((SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 4
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'S'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
>
> +
> (SELECT COALESCE(SUM(VW_ESPRODUTO.vQuant),0)
> FROM VW_ESPRODUTO
> WHERE VW_ESPRODUTO.CODIGOPRODUTO =
> TB_PRODUTOS_1.CODIGOPRODUTO
> AND VW_ESPRODUTO.CODIGOOPERCFOP = 1 AND
> VW_ESPRODUTO.CODIGOOPERCOMPCFOP = 5
> AND VW_ESPRODUTO.VCODIGOMOV = 3
> AND VW_ESPRODUTO.CODIGOOPERESTOQUE = 'E'
> AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO =
> 3))
> ) AS VSaldoEntregaFutura
>
>
> FROM
> TB_PRODUTOS TB_PRODUTOS_1
> INNER JOIN TB_PRODUTOSMOV TB_PRODUTOSMOV_1
> ON (TB_PRODUTOS_1.CODIGOPRODUTO = TB_PRODUTOSMOV_1.CODIGOPRODUTO)
> INNER JOIN TB_PEDIDOS
> ON TB_PRODUTOSMOV_1.ORDEMPEDIDO = TB_PEDIDOS.ORDEMPEDIDO
> INNER JOIN TB_PRODUTOSEMPRESA
> ON (TB_PRODUTOSEMPRESA.CODIGOPRODUTO = TB_PRODUTOS_1.CODIGOPRODUTO)
> INNER JOIN TB_UNIDADEMEDIDA
> ON (TB_UNIDADEMEDIDA.CODIGOUNIDADEMEDIDA =
> TB_PRODUTOS_1.CODIGOUNIDADEMEDIDA)
> INNER JOIN TB_MARCAS
> ON (TB_MARCAS.CODIGOMARCAS = TB_PRODUTOS_1.CODIGOMARCAS)
> INNER JOIN TB_LIGCATEGORIACLASSES
> ON (TB_LIGCATEGORIACLASSES.ORDEMLIGCATEGORIACLASSES =
> TB_PRODUTOS_1.ORDEMLIGCATEGORIACLASSES)
> INNER JOIN TB_CLASSES
> ON (TB_CLASSES.CODIGOCLASSES = TB_LIGCATEGORIACLASSES.CODIGOCLASSES)
> INNER JOIN TB_CATEGORIAPRODUTOS
> ON (TB_CATEGORIAPRODUTOS.CODIGOCATEGORIAPRODUTO =
> TB_LIGCATEGORIACLASSES.CODIGOCATEGORIAPRODUTO)
> INNER JOIN TB_PRODUTOSSAFRA
> ON TB_PRODUTOS_1.CODIGOPRODUTO = TB_PRODUTOSSAFRA.CODIGOPRODUTO
> LEFT JOIN TB_APV
> ON (TB_APV.CODIGOPRODUTO = TB_PRODUTOSSAFRA.CODIGOPRODUTO
> AND TB_APV.CODIGOEMPRESA = TB_PRODUTOSSAFRA.CODIGOEMPRESA)
> WHERE TB_PEDIDOS.ORDEMPEDIDO = 61
> AND TB_PRODUTOSEMPRESA.CODIGOEMPRESA = 1
> AND TB_PRODUTOSSAFRA.CODIGOSAFRA = 1
> ORDER BY TB_PRODUTOS_1.DESCRICAOPRODUTO, TB_PRODUTOSMOV_1.ORDEMPRODUTOMOV
>
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://firebird.sourceforge.net and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
>
>
>
> SPONSORED LINKS
> Technical support<http://groups.yahoo.com/gads?t=ms&k=Technical+support&w1=Technical+support&w2=Computer+technical+support&w3=Compaq+computer+technical+support&w4=Compaq+technical+support&w5=Hewlett+packard+technical+support&w6=Microsoft+technical+support&c=6&s=196&.sig=-XIO8GxY6hqd3NaD5WSEyw> Computer
> technical support<http://groups.yahoo.com/gads?t=ms&k=Computer+technical+support&w1=Technical+support&w2=Computer+technical+support&w3=Compaq+computer+technical+support&w4=Compaq+technical+support&w5=Hewlett+packard+technical+support&w6=Microsoft+technical+support&c=6&s=196&.sig=B29J78SYXnNTjjMFBMznqA> Compaq
> computer technical support<http://groups.yahoo.com/gads?t=ms&k=Compaq+computer+technical+support&w1=Technical+support&w2=Computer+technical+support&w3=Compaq+computer+technical+support&w4=Compaq+technical+support&w5=Hewlett+packard+technical+support&w6=Microsoft+technical+support&c=6&s=196&.sig=7_je1A94xs82CFXUjEqA6g> Compaq
> technical support<http://groups.yahoo.com/gads?t=ms&k=Compaq+technical+support&w1=Technical+support&w2=Computer+technical+support&w3=Compaq+computer+technical+support&w4=Compaq+technical+support&w5=Hewlett+packard+technical+support&w6=Microsoft+technical+support&c=6&s=196&.sig=2zMAuRCo5cJrVBr1Bxa3_w> Hewlett
> packard technical support<http://groups.yahoo.com/gads?t=ms&k=Hewlett+packard+technical+support&w1=Technical+support&w2=Computer+technical+support&w3=Compaq+computer+technical+support&w4=Compaq+technical+support&w5=Hewlett+packard+technical+support&w6=Microsoft+technical+support&c=6&s=196&.sig=_ytYU7aXb57AVaeUfmvLcA> Microsoft
> technical support<http://groups.yahoo.com/gads?t=ms&k=Microsoft+technical+support&w1=Technical+support&w2=Computer+technical+support&w3=Compaq+computer+technical+support&w4=Compaq+technical+support&w5=Hewlett+packard+technical+support&w6=Microsoft+technical+support&c=6&s=196&.sig=4hRo6NXYavRAbTkaYec5Lw>
> ------------------------------
> YAHOO! GROUPS LINKS
>
>
> - Visit your group "firebird-support<http://groups.yahoo.com/group/firebird-support>"
> on the web.
>
> - To unsubscribe from this group, send an email to:
> firebird-support-unsubscribe@yahoogroups.com<firebird-support-unsubscribe@yahoogroups.com?subject=Unsubscribe>
>
> - Your use of Yahoo! Groups is subject to the Yahoo! Terms of
> Service <http://docs.yahoo.com/info/terms/>.
>
>
> ------------------------------
>
--
************************************************************************************
Kurt Schneider - [ Analista de Sistema ]
Especialista em Analise e Desenvolvimento de Software
ControlSoft - Assessoria e Desenvolvimento de Sistemas
e-mail: kjundia@...
"Quis custodiet ipsos custodes?" - Satirás - De Juvenal
----------
SELECT
TB_P_1.CODIGOPRODUTO,
TB_P_1.DESCRICAOPRODUTO,
TB_P_1.CODIGOORIGINALFABRICANTE,
TB_P_1.CODIGOCSTORIGEM,
TB_P_1.CONTROLALOTES,
TB_P_1.CODIGOTIPOPRODUTO,
TB_UM.ABREVIADOUNIDADEMEDIDA,
TB_MARCAS.DESCRICAOMARCAS,
TB_CLASSES.DESCRICAOCLASSES,
TB_PE.ATIVOPRODUTO,
TB_P_1.ORDEMLIGCATEGORIACLASSES,
COALESCE(TB_APV.VLRCUSTOI,0) AS VLRCUSTOI,
COALESCE(TB_APV.TXICMSSAIDASAPV,0) AS TXICMSSAIDASAPV,
COALESCE(TB_APV.TXCUSTOOPERSAIDASAPV,0) AS TXCUSTOOPERSAIDASAPV,
TB_LCC.CODIGOCATEGORIAPRODUTO,
TB_P_1.TAXAFUNRURALPRODUTO,
TB_P_1.TAXAPISPRODUTO,
TB_P_1.TAXACOFINSPRODUTO,
TB_P_1.TAXAFETHABPRODUTO,
TB_PS.ESTOQUEMINIMOPRODUTO,
TB_PS.COMISSAOSOBREVENDA,
TB_PS.COMISSAOSOBRECOMPRA,
TB_PS.ORIGEMTAXACOMISSAO,
(SELECT
CASE TB_PEDIDOS_2.CODIGOTIPOPEDIDO
WHEN 'N' THEN
SUBSTRING(CAST('Pedido: ' || TB_PEDIDOS_2.NUMSEQPEDIDO || ' - ' || TB_CLIENTES_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
ELSE
SUBSTRING(CAST('Remessa: ' || TB_PEDIDOS_2.NUMSEQPEDIDO || ' - ' || TB_CLIENTES_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
END
FROM TB_PRODUTOSMOV TB_PRODUTOSMOV_2
INNER JOIN TB_PEDIDOS TB_PEDIDOS_2 ON TB_PRODUTOSMOV_2.ORDEMPEDIDO = TB_PEDIDOS_2.ORDEMPEDIDO
INNER JOIN TB_CLIENTES TB_CLIENTES_2 ON TB_PEDIDOS_2.CODIGOCLIENTE = TB_CLIENTES_2.CODIGOCLIENTE
WHERE TB_PRODUTOSMOV_2.ORDEMPRODUTOMOV = TB_PM_1.ORDEMPRODUTOMOV)
AS vORIGEMPRODUTO,
CAST('N' as CHAR(1)) as vJaSelecionou,
TB_PRODUTOSMOV.*,
(SELECT FIRST 1
(
((SELECT COALESCE(SUM(VW_ES_1.vQuant),0)
FROM VW_ESPRODUTO VW_ES_1
WHERE VW_ES_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND VW_ES_1.CODIGOOPERCFOP = 1 AND VW_ES_1.CODIGOOPERCOMPCFOP = 4
AND VW_ES_1.VCODIGOMOV = 3
AND VW_ES_1.CODIGOCLIENTE = 221
AND VW_ES_1.CODIGOOPERESTOQUE = 'E'
AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
-
((SELECT COALESCE(SUM(VW_ES_1.vQuant),0)
FROM VW_ESPRODUTO VW_ES_1
WHERE VW_ES_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND VW_ES_1.CODIGOOPERCFOP = 1 AND VW_ES_1.CODIGOOPERCOMPCFOP = 4
AND VW_ES_1.VCODIGOMOV = 3
AND VW_ES_1.CODIGOCLIENTE = 221
AND VW_ES_1.CODIGOOPERESTOQUE = 'S'
AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
+
(SELECT COALESCE(SUM(VW_ES_1.vQuant),0)
FROM VW_ESPRODUTO VW_ES_1
WHERE VW_ES_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND VW_ES_1.CODIGOOPERCFOP = 1 AND VW_ES_1.CODIGOOPERCOMPCFOP = 5
AND VW_ES_1.VCODIGOMOV = 3
AND VW_ES_1.CODIGOCLIENTE = 221
AND VW_ES_1.CODIGOOPERESTOQUE = 'E'
AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3))
))
FROM TB_SEXO) as vAFATURAR,
CASE
WHEN CODIGOCATEGORIAPRODUTO = 3 AND CONTROLALOTES = 'S' THEN
(SELECT COALESCE(Count(TB_LTS_1.CODIGOPRODUTO),0)
FROM TB_LOTESSEMENTES TB_LTS_1
WHERE TB_LTS_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND TB_LTS_1.CODIGOEMPRESA = 1
AND TB_LTS_1.CODIGOCLIENTE = 221
AND TB_LTS_1.CODIGOSTATUS = 'A')
ELSE 0
END as vTemLote,
CAST(0 AS INTEGER) AS VSaldo,
((SELECT COALESCE(SUM(VW_ES_1.vQuant),0)
FROM VW_ESPRODUTO VW_ES_1
WHERE VW_ES_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND VW_ES_1.CODIGOOPERCFOP = 1 AND VW_ES_1.CODIGOOPERCOMPCFOP = 4
AND VW_ES_1.VCODIGOMOV = 3
AND VW_ES_1.CODIGOOPERESTOQUE = 'E'
AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
-
((SELECT COALESCE(SUM(VW_ES_1.vQuant),0)
FROM VW_ESPRODUTO VW_ES_1
WHERE VW_ES_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND VW_ES_1.CODIGOOPERCFOP = 1 AND VW_ES_1.CODIGOOPERCOMPCFOP = 4
AND VW_ES_1.VCODIGOMOV = 3
AND VW_ES_1.CODIGOOPERESTOQUE = 'S'
AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3)
+
(SELECT COALESCE(SUM(VW_ES_1.vQuant),0)
FROM VW_ESPRODUTO VW_ES_1
WHERE VW_ES_1.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO
AND VW_ES_1.CODIGOOPERCFOP = 1 AND VW_ES_1.CODIGOOPERCOMPCFOP = 5
AND VW_ES_1.VCODIGOMOV = 3
AND VW_ES_1.CODIGOOPERESTOQUE = 'E'
AND VCODIGOMOVORIGEM IN (1,2,3) AND VCODIGOMOVDESTINO = 3))
) AS VSaldoEntregaFutura
FROM
TB_PRODUTOS TB_P_1
INNER JOIN TB_PRODUTOSMOV TB_PM_1
ON (TB_P_1.CODIGOPRODUTO = TB_PM_1.CODIGOPRODUTO)
INNER JOIN TB_PEDIDOS TB_PED
ON TB_PM_1.ORDEMPEDIDO = TB_PED.ORDEMPEDIDO
INNER JOIN TB_PRODUTOSEMPRESA TB_PE
ON (TB_PE.CODIGOPRODUTO = TB_P_1.CODIGOPRODUTO)
INNER JOIN TB_UNIDADEMEDIDA TB_UM
ON (TB_UM.CODIGOUNIDADEMEDIDA = TB_P_1.CODIGOUNIDADEMEDIDA)
INNER JOIN TB_MARCAS
ON (TB_MARCAS.CODIGOMARCAS = TB_P_1.CODIGOMARCAS)
INNER JOIN TB_LIGCATEGORIACLASSES TB_LCC
ON (TB_LCC.ORDEMLIGCATEGORIACLASSES = TB_P_1.ORDEMLIGCATEGORIACLASSES)
INNER JOIN TB_CLASSES
ON (TB_CLASSES.CODIGOCLASSES = TB_LCC.CODIGOCLASSES)
INNER JOIN TB_CATEGORIAPRODUTOS TB_C
ON (TB_C.CODIGOCATEGORIAPRODUTO = TB_LCC.CODIGOCATEGORIAPRODUTO)
INNER JOIN TB_PRODUTOSSAFRA TB_PS
ON TB_P_1.CODIGOPRODUTO = TB_PS.CODIGOPRODUTO
LEFT JOIN TB_APV
ON (TB_APV.CODIGOPRODUTO = TB_PRODUTOSSAFRA.CODIGOPRODUTO
AND TB_APV.CODIGOEMPRESA = TB_PRODUTOSSAFRA.CODIGOEMPRESA)
WHERE TB_PED.ORDEMPEDIDO = 61
AND TB_PED.CODIGOEMPRESA = 1
AND TB_PS.CODIGOSAFRA = 1
ORDER BY TB_P_1.DESCRICAOPRODUTO, TB_PM_1.ORDEMPRODUTOMOV;
[Non-text portions of this message have been removed]