Download, clique aqui.
DECLARE
P_SQL VARCHAR2(4000);
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE TGFESE';
P_SQL := 'BEGIN ' || 'INSERT INTO TGFESE ' ||
'( DTREFERENCIA, TIPMOV, CODTIPOPER, CODEMP, CODPROD, CODLOCALORIG, CONTROLE, ATUALESTOQUE, ATUALESTTERC, QTDNEG ' ||
',QTDENTRADAS, QTDSAIDAS, CODEMPCONTPART ) ' ||
' SELECT TRUNC( CASE WHEN T.ATUALLIVFIS = ''S'' OR T.CUPOMFISCAL = ''S'' THEN C.DTNEG ELSE NVL( C.DTENTSAI, C.DTNEG ) END ) AS DTREFERENCIA ' ||
',C.TIPMOV, C.CODTIPOPER, I.CODEMP, I.CODPROD, I.CODLOCALORIG, NVL( I.CONTROLE, '' '' ), I.ATUALESTOQUE, NVL( I.ATUALESTTERC, ''N'' ) AS ATUALESTTERC ' ||
',SUM( I.QTDNEG ) AS QTDNEG, SUM( CASE WHEN I.ATUALESTOQUE = -1 THEN 0 ELSE I.QTDNEG END ) AS QTDENTRADA ' ||
',SUM( CASE WHEN I.ATUALESTOQUE = -1 THEN I.QTDNEG ELSE 0 END ) AS QTDSAIDA ' ||
',CASE WHEN C.TIPMOV = ''T'' AND I.CODEMP = C.CODEMPNEGOC THEN C.CODEMP ELSE C.CODEMPNEGOC END AS CODEMPCONTPART ' ||
' FROM TGFITE I, TGFCAB C, TGFTOP T ' ||
' WHERE I.RESERVA = ''N'' ' ||
' AND ( I.ATUALESTOQUE <> 0 OR I.ATUALESTTERC <> ''N'' ) ' ||
' AND I.NUNOTA = C.NUNOTA ' ||
' AND C.CODTIPOPER = T.CODTIPOPER AND C.DHTIPOPER = T.DHALTER ' ||
'GROUP BY TRUNC( CASE WHEN T.ATUALLIVFIS = ''S'' OR T.CUPOMFISCAL = ''S'' THEN C.DTNEG ELSE NVL( C.DTENTSAI, C.DTNEG ) END ) ' ||
',C.TIPMOV, C.CODTIPOPER, I.CODEMP, I.CODPROD, I.CODLOCALORIG, NVL( I.CONTROLE, '' '' ),I.ATUALESTOQUE, NVL( I.ATUALESTTERC, ''N'' ) ' ||
',CASE WHEN C.TIPMOV = ''T'' AND I.CODEMP = C.CODEMPNEGOC THEN C.CODEMP ELSE C.CODEMPNEGOC END; ' || ' ' ||
'END;';
EXECUTE IMMEDIATE P_SQL;
END;
Nenhum comentário:
Postar um comentário