Ver Mensaje Individual
  #1  
Antiguo 08-04-2008
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Reputación: 21
Paulao Va por buen camino
Query no viene nada

Señores, tengo la query abajo. Se em mi tabla, NF_CAPEADOR, no hay ningún registro, entonces mi query no retorna nada, mismo que haga registro en la tabla NF_FUNC_VEN. Esta query debe traer los registros de la NF_CAPEADOR(venta del dia) e tambien toda la venta acumulada en el periodo(NF_FUNC_VEN), obedeciendo la regla en las clausulas WHERE. El problema esta en el GROUP BY, pero no se como resolver. Pero si la NF_CAPEADOR, tiene registro, entonces la query funciona. Abajo, la query:

Cita:
SELECT
CAP.CD_FUNC "FUNCIONARIO",
FUNC.NOME "NOME",
ACUMULADO.DT_FUNC,
SUM(CAP.VL_BRUTO + CAP.VL_DESC_ACR) -
COALESCE(DEVOLUCAO.DEV,0) "VENDA DIA",
SUM(CAP.VL_BRUTO + CAP.VL_DESC_ACR) -
COALESCE(DEVOLUCAO.DEV,0) +
COALESCE(ACUMULADO.ACUM,0) "VENDA ACUMULADA"
FROM TB_SAC_NF_CAPEADOR CAP
INNER JOIN TB_SAC_FUNC FUNC
ON(FUNC.CD_FUNC = CAP.CD_FUNC)
LEFT JOIN
(SELECT
CP.CD_FUNC,
SUM(CP.VL_BRUTO + CP.VL_DESC_ACR)"DEV"
FROM TB_SAC_NF_CAPEADOR CP
WHERE
CP.SR_NF = 'E2' AND
CP.ST_CANC = 0 AND
CP.DT_ENT
BETWEEN
'2008-Mar-29' AND
'2008-Mar-31'
GROUP BY
CP.CD_FUNC) "DEVOLUCAO"
ON(DEVOLUCAO.CD_FUNC = FUNC.CD_FUNC)
LEFT JOIN
(SELECT
VEN.CD_FUNC,
VEN.DT_FUNC,
SUM(VEN.VL_FUNC)"ACUM"
FROM TB_SAC_FUNC_VEN VEN
WHERE
VEN.DT_FUNC
BETWEEN
'2008-Mar-29' AND
'2008-Mar-31'
GROUP BY
VEN.CD_FUNC,
VEN.DT_FUNC)"ACUMULADO"
ON(ACUMULADO.CD_FUNC = CAP.CD_FUNC)
WHERE
ST_CANC = 0 AND
((SR_NF = 'D2') OR ((SR_NF = 'B2') AND
(CD_CFOP = 6102))) AND DT_ENT
BETWEEN
'2008-Mar-29' AND
'2008-Mar-31'
GROUP BY
CAP.CD_FUNC,
FUNC.NOME,
DEVOLUCAO.DEV,
ACUMULADO.ACUM,
ACUMULADO.DT_FUNC
Responder Con Cita