Subject Re: Invalid BLR - BAD BLR - Help
Author Svein Erling Tysvær
What a messy SQL statement! In some places properly using alises,
other places the table name and yet other places just the field
without reference to any alias or table. Enforce that you should
always use aliases. Moreover, some places you put AND at the end of a
line, other places at the beginning, and you vary whether it is the
former or latter table that goes first in a JOIN clause.

I removed TB_PRODUTOSMOV_2 since the subselect has to return a maximum
of one row and hence ORDEMPRODUTOMOV has to be unique in
TB_PRODUTOSMOV. A SELECT SUM returns one row anyway, so I removed
FIRST 1.

Also, your query had FROM TB_SEXO in a place where there was no
select, so I would expect this query to actually get an error when
trying to prepare it - I'm amazed that it got far enough to complain
about the BLR!

Below is the SQL I ended up with after wreaking havoc with your query.
After finishing the main select, I didn't want to spend the rest of my
Friday evening trying to sort out your VIEW. But start by making
aliases everywhere and use some consistent coding style. You may also
consider replacing LEFT JOIN in your view with a subselect.

HTH,
Set

SELECT
TB_PR_1.CODIGOPRODUTO,
TB_PR_1.DESCRICAOPRODUTO,
TB_PR_1.CODIGOORIGINALFABRICANTE,
TB_PR_1.CODIGOCSTORIGEM,
TB_PR_1.CONTROLALOTES,
TB_PR_1.CODIGOTIPOPRODUTO,
TB_U.ABREVIADOUNIDADEMEDIDA,
TB_M.DESCRICAOMARCAS,
TB_C.DESCRICAOCLASSES,
TB_PRE.ATIVOPRODUTO,
TB_PR_1.ORDEMLIGCATEGORIACLASSES,
COALESCE(TB_A.VLRCUSTOI,0) AS VLRCUSTOI,
COALESCE(TB_A.TXICMSSAIDASAPV,0) AS TXICMSSAIDASAPV,
COALESCE(TB_A.TXCUSTOOPERSAIDASAPV,0) AS TXCUSTOOPERSAIDASAPV,
TB_LCC.CODIGOCATEGORIAPRODUTO,
TB_PR_1.TAXAFUNRURALPRODUTO,
TB_PR_1.TAXAPISPRODUTO,
TB_PR_1.TAXACOFINSPRODUTO,
TB_PR_1.TAXAFETHABPRODUTO,
TB_PRS.ESTOQUEMINIMOPRODUTO,
TB_PRS.COMISSAOSOBREVENDA,
TB_PRS.COMISSAOSOBRECOMPRA,
TB_PRS.ORIGEMTAXACOMISSAO,
(SELECT
CASE TB_PE_2.CODIGOTIPOPEDIDO
WHEN 'N' THEN
SUBSTRING(CAST('Pedido: ' || TB_PE_2.NUMSEQPEDIDO || ' - ' ||
TB_C_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
ELSE
SUBSTRING(CAST('Remessa: ' || TB_PE_2.NUMSEQPEDIDO || ' - ' ||
TB_C_2.RAZAOSOCIALCLIENTE as VARCHAR(150)) FROM 1 FOR 35) || '...'
END
FROM TB_PEDIDOS TB_PE_2
JOIN TB_CLIENTES TB_C_2
ON TB_PE_2.CODIGOCLIENTE = TB_C_2.CODIGOCLIENTE
WHERE TB_PRM_1.ORDEMPEDIDO = TB_PE_2.ORDEMPEDIDO)
AS vORIGEMPRODUTO,
CAST('N' as CHAR(1)) as vJaSelecionou,
//*********************************************
//Here select the individual fields of TB_PRM, dont use TB_PRM.*!,
//*********************************************
((SELECT COALESCE(SUM(VW_E.vQuant),0)
FROM VW_ESPRODUTO VW_E
WHERE TB_PR_1.CODIGOPRODUTO = VW_E.CODIGOPRODUTO
AND VW_E.CODIGOOPERCFOP = 1
AND VW_E.CODIGOOPERCOMPCFOP = 4
AND VW_E.VCODIGOMOV = 3
AND VW_E.CODIGOCLIENTE = 221
AND VW_E.CODIGOOPERESTOQUE = 'E'
AND VW_E.VCODIGOMOVORIGEM IN (1,2,3)
AND VW_E.VCODIGOMOVDESTINO = 3)
-
(SELECT COALESCE(SUM(VW_E_2.vQuant),0)
FROM VW_ESPRODUTO VW_E_2
WHERE TB_PR_1.CODIGOPRODUTO = VW_E_2.CODIGOPRODUTO
AND VW_E_2.CODIGOOPERCFOP = 1
AND VW_E_2.CODIGOOPERCOMPCFOP = 4
AND VW_E_2.VCODIGOMOV = 3
AND VW_E_2.CODIGOCLIENTE = 221
AND VW_E_2.CODIGOOPERESTOQUE = 'S'
AND VW_E_2.VCODIGOMOVORIGEM IN (1,2,3)
AND VW_E_2.VCODIGOMOVDESTINO = 3)
+
(SELECT COALESCE(SUM(VW_E_3.vQuant),0)
FROM VW_ESPRODUTO VW_E_3
WHERE TB_PR_1.CODIGOPRODUTO = VW_E_3.CODIGOPRODUTO
AND VW_E_3.CODIGOOPERCFOP = 1
AND VW_E_3.CODIGOOPERCOMPCFOP = 5
AND VW_E_3.VCODIGOMOV = 3
AND VW_E_3.CODIGOCLIENTE = 221
AND VW_E_3.CODIGOOPERESTOQUE = 'E'
AND VW_E_3.VCODIGOMOVORIGEM IN (1,2,3)
AND VW_E_3.VCODIGOMOVDESTINO = 3)) as vAFATURAR,
CASE
WHEN TB_LCC.CODIGOCATEGORIAPRODUTO = 3 AND TB_PR_1.CONTROLALOTES = 'S'
THEN
(SELECT COALESCE(Count(TB_LS.CODIGOPRODUTO),0)
FROM TB_LOTESSEMENTES TB_LS
WHERE TB_PR_1.CODIGOPRODUTO = TB_LS.CODIGOPRODUTO
AND TB_LS.CODIGOEMPRESA = 1
AND TB_LS.CODIGOCLIENTE = 221
AND TB_LS.CODIGOSTATUS = 'A')
ELSE 0
END as vTemLote,
CAST(0 AS INTEGER) AS VSaldo,
((SELECT COALESCE(SUM(VW_E_4.vQuant),0)
FROM VW_ESPRODUTO VW_E_4
WHERE TB_PR_1.CODIGOPRODUTO = VW_E_4.CODIGOPRODUTO
AND VW_E_4.CODIGOOPERCFOP = 1
AND VW_E_4.CODIGOOPERCOMPCFOP = 4
AND VW_E_4.VCODIGOMOV = 3
AND VW_E_4.CODIGOOPERESTOQUE = 'E'
AND VW_E_4.VCODIGOMOVORIGEM IN (1,2,3)
AND VW_E_4.VCODIGOMOVDESTINO = 3)
-
(SELECT COALESCE(SUM(VW_E_5.vQuant),0)
FROM VW_ESPRODUTO VW_E_5
WHERE TB_PR_1.CODIGOPRODUTO = VW_E_5.CODIGOPRODUTO
AND VW_E_5.CODIGOOPERCFOP = 1
AND VW_E_5.CODIGOOPERCOMPCFOP = 4
AND VW_E_5.VCODIGOMOV = 3
AND VW_E_5.CODIGOOPERESTOQUE = 'S'
AND VW_E_5.VCODIGOMOVORIGEM IN (1,2,3)
AND VW_E_5.VCODIGOMOVDESTINO = 3)
+
(SELECT COALESCE(SUM(VW_E_6.vQuant),0)
FROM VW_ESPRODUTO VW_E_6
WHERE TB_PR_1.CODIGOPRODUTO = VW_E_6.CODIGOPRODUTO
AND VW_E_6.CODIGOOPERCFOP = 1
AND VW_E_6.CODIGOOPERCOMPCFOP = 5
AND VW_E_6.VCODIGOMOV = 3
AND VW_E_6.CODIGOOPERESTOQUE = 'E'
AND VW_E_6.VCODIGOMOVORIGEM IN (1,2,3)
AND VW_E_6.VCODIGOMOVDESTINO = 3))
AS VSaldoEntregaFutura
FROM TB_PRODUTOS TB_PR_1
JOIN TB_PRODUTOSMOV TB_PRM_1
ON TB_PR_1.CODIGOPRODUTO = TB_PRM_1.CODIGOPRODUTO
JOIN TB_PEDIDOS TB_PE
ON TB_PRM_1.ORDEMPEDIDO = TB_PE.ORDEMPEDIDO
JOIN TB_PRODUTOSEMPRESA TB_PRE
ON TB_PR_1.CODIGOPRODUTO = TB_PRE.CODIGOPRODUTO
JOIN TB_UNIDADEMEDIDA TB_U
ON TB_PR_1.CODIGOUNIDADEMEDIDA = TB_U.CODIGOUNIDADEMEDIDA
JOIN TB_MARCAS TB_M
ON TB_PR_1.CODIGOMARCAS = TB_M.CODIGOMARCAS
JOIN TB_LIGCATEGORIACLASSES TB_LCC
ON TB_PR_1.ORDEMLIGCATEGORIACLASSES = TB_LCC.
ORDEMLIGCATEGORIACLASSES
JOIN TB_CLASSES TB_C
ON TB_LCC.CODIGOCLASSES = TB_C.CODIGOCLASSES
JOIN TB_CATEGORIAPRODUTOS TB_CP
ON TB_LCC.CODIGOCATEGORIAPRODUTO = TB_CP.CODIGOCATEGORIAPRODUTO
JOIN TB_PRODUTOSSAFRA TB_PRS
ON TB_PR_1.CODIGOPRODUTO = TB_PRS.CODIGOPRODUTO
LEFT JOIN TB_APV TB_A
ON TB_PRS.CODIGOPRODUTO = TB_A.CODIGOPRODUTO
AND TB_PRS.CODIGOEMPRESA = TB_A.CODIGOEMPRESA
WHERE TB_PE.ORDEMPEDIDO = 61
AND TB_PRE.CODIGOEMPRESA = 1
AND TB_PRS.CODIGOSAFRA = 1
ORDER BY TB_PR_1.DESCRICAOPRODUTO, TB_PRM_1.ORDEMPRODUTOMOV;


--- In firebird-support@yahoogroups.com, "Kurt Schneider" wrote:
> 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;
>
>
>
>
>
> [Non-text portions of this message have been removed]
>