a query original era assim:
Código: Selecionar todos
cQuery:="SELECT "
cQuery+="DATE_FORMAT(pedidos.DATVEN, '%m/%Y') AS MESANO, "
cQuery+="IF ( "
cQuery+="( SELECT "
cQuery+="SUM(entrada.W_VNF) "
cQuery+="FROM entrada "
cQuery+="WHERE entrada.ST = '1' "
cQuery+="AND DATE_FORMAT(entrada.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND SUBSTRING(entrada.A_ID, 36, 5) != '00000' "
cQuery+="AND entrada.TIPO_OPERACAO != 85 "
cQuery+="AND entrada.TIPO_OPERACAO != 90 "
cQuery+="AND entrada.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(entrada.B_DHEMI, '%Y') ) IS NOT NULL, "
cQuery+="( SELECT "
cQuery+="SUM(entrada.W_VNF) "
cQuery+="FROM entrada "
cQuery+="WHERE entrada.ST = '1' "
cQuery+="AND DATE_FORMAT(entrada.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND SUBSTRING(entrada.A_ID, 36, 5) != '00000' "
cQuery+="AND entrada.TIPO_OPERACAO != 85 "
cQuery+="AND entrada.TIPO_OPERACAO != 90 "
cQuery+="AND entrada.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(entrada.B_DHEMI, '%Y') ), 0.00) AS TOTAL_COMPRAS_MES, "
cQuery+="COALESCE(SUM(pedidos.TOTNOT) , 0.00 ) AS VENDAS_MES, "
// cQuery+="IF(SUM(pedidos.TOTNOT) IS NULL, 0.00, SUM(pedidos.TOTNOT) ) AS VENDAS_MES, "
cQuery+="IF ( "
cQuery+="( SELECT "
cQuery+="sum(danfe.W_VNF) "
cQuery+="FROM danfe "
cQuery+="WHERE DATE_FORMAT(danfe.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND danfe.FL_CANCEL = 0 "
cQuery+="AND danfe.TIPO_OPERACAO != 85 "
cQuery+="AND danfe.TIPO_OPERACAO != 90 "
cQuery+="AND danfe.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(danfe.B_DHEMI, '%Y/%m') ) IS NOT NULL, "
cQuery+="( SELECT "
cQuery+="sum(danfe.W_VNF) "
cQuery+="FROM danfe "
cQuery+="WHERE DATE_FORMAT(danfe.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND danfe.FL_CANCEL = 0 "
cQuery+="AND danfe.TIPO_OPERACAO != 85 "
cQuery+="AND danfe.TIPO_OPERACAO != 90 "
cQuery+="AND danfe.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(danfe.B_DHEMI, '%Y/%m') ), 0.00) AS TOTAL_DANFE_MES, "
cQuery+="IF ("
cQuery+="( SELECT "
cQuery+="sum(danfe.W_VNF) "
cQuery+="FROM danfe "
cQuery+="WHERE DATE_FORMAT(danfe.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND danfe.B_MOD = '55' "
cQuery+="AND danfe.FL_CANCEL = 0 "
cQuery+="AND danfe.TIPO_OPERACAO != 85 "
cQuery+="AND danfe.TIPO_OPERACAO != 90 "
cQuery+="AND danfe.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(danfe.B_DHEMI, '%Y/%m') ) IS NOT NULL, "
cQuery+="( SELECT "
cQuery+="sum(danfe.W_VNF) "
cQuery+="FROM danfe "
cQuery+="WHERE DATE_FORMAT(danfe.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND danfe.B_MOD = '55' "
cQuery+="AND danfe.FL_CANCEL = 0 "
cQuery+="AND danfe.TIPO_OPERACAO != 85 "
cQuery+="AND danfe.TIPO_OPERACAO != 90 "
cQuery+="AND danfe.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(danfe.B_DHEMI, '%Y/%m') ), 0.00) AS TOTAL_55_MES, "
cQuery+="IF ( "
cQuery+="( SELECT "
cQuery+="sum(danfe.W_VNF) "
cQuery+="FROM danfe "
cQuery+="WHERE DATE_FORMAT(danfe.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND danfe.B_MOD = '65' "
cQuery+="AND danfe.FL_CANCEL = 0 "
cQuery+="AND danfe.TIPO_OPERACAO != 85 "
cQuery+="AND danfe.TIPO_OPERACAO != 90 "
cQuery+="AND danfe.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(danfe.B_DHEMI, '%Y/%m') ) IS NOT NULL, "
cQuery+="( SELECT "
cQuery+="sum(danfe.W_VNF) "
cQuery+="FROM danfe "
cQuery+="WHERE DATE_FORMAT(danfe.B_DHEMI, '%m/%Y') = DATE_FORMAT(pedidos.DATVEN, '%m/%Y') "
cQuery+="AND danfe.B_MOD = '65' "
cQuery+="AND danfe.FL_CANCEL = 0 "
cQuery+="AND danfe.TIPO_OPERACAO != 85 "
cQuery+="AND danfe.TIPO_OPERACAO != 90 "
cQuery+="AND danfe.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(danfe.B_DHEMI, '%Y/%m') ), 0.00) AS TOTAL_65_MES "
cQuery+="FROM pedidos "
cQuery+="WHERE DATE_FORMAT(pedidos.DATVEN, '%Y') = '" + str(YEAR(M->DAT_HOJE),4,0) + "' "
cQuery+="AND pedidos.ST = '0' "
cQuery+="AND pedidos.TIPO_OPERACAO != 85 "
cQuery+="AND pedidos.TIPO_OPERACAO != 90 "
cQuery+="AND pedidos.TIPO_OPERACAO != 91 "
cQuery+="GROUP BY DATE_FORMAT(pedidos.DATVEN, '%Y/%m') "
cQuery+="ORDER BY DATE_FORMAT(pedidos.DATVEN, '%Y/%m') desc "
HB_GTINFO( HB_GTI_CLIPBOARDDATA, cQuery)
oQuery1:= ConeccoesClass():ExecuteSQL(::oServer, cQuery)Código: Selecionar todos
cQuery:="SELECT "
cQuery+="DATE_FORMAT(pedidos.DATVEN, '%m/%Y') AS MESANO, "
cQuery+="COALESCE(entrada_sum.W_VNF, 0.00) AS TOTAL_COMPRAS_MES, "
cQuery+="COALESCE(SUM(pedidos.TOTNOT), 0.00) AS VENDAS_MES, "
cQuery+="COALESCE(danfe_sum.W_VNF, 0.00) AS TOTAL_DANFE_MES,"
cQuery+="COALESCE(danfe_55_sum.W_VNF, 0.00) AS TOTAL_55_MES, "
cQuery+="COALESCE(danfe_65_sum.W_VNF, 0.00) AS TOTAL_65_MES "
cQuery+="FROM pedidos "
cQuery+="LEFT JOIN ( "
cQuery+="SELECT DATE_FORMAT(B_DHEMI, '%m/%Y') AS MESANO, SUM(W_VNF) AS W_VNF "
cQuery+="FROM entrada "
cQuery+="WHERE ST = '1' AND SUBSTRING(A_ID, 36, 5) != '00000' "
cQuery+="GROUP BY MESANO "
cQuery+=") entrada_sum ON DATE_FORMAT(pedidos.DATVEN, '%m/%Y') = entrada_sum.MESANO "
cQuery+="LEFT JOIN ( "
cQuery+="SELECT DATE_FORMAT(B_DHEMI, '%m/%Y') AS MESANO, SUM(W_VNF) AS W_VNF "
cQuery+="FROM danfe "
cQuery+="WHERE FL_CANCEL = 0 AND B_MOD IN ('55', '65') "
cQuery+="GROUP BY MESANO "
cQuery+=") danfe_sum ON DATE_FORMAT(pedidos.DATVEN, '%m/%Y') = danfe_sum.MESANO "
cQuery+="LEFT JOIN ( "
cQuery+="SELECT DATE_FORMAT(B_DHEMI, '%m/%Y') AS MESANO, SUM(W_VNF) AS W_VNF "
cQuery+="FROM danfe "
cQuery+="WHERE FL_CANCEL = 0 AND B_MOD = '55' "
cQuery+="GROUP BY MESANO "
cQuery+=") danfe_55_sum ON DATE_FORMAT(pedidos.DATVEN, '%m/%Y') = danfe_55_sum.MESANO "
cQuery+="LEFT JOIN ( "
cQuery+="SELECT DATE_FORMAT(B_DHEMI, '%m/%Y') AS MESANO, SUM(W_VNF) AS W_VNF "
cQuery+="FROM danfe "
cQuery+="WHERE FL_CANCEL = 0 AND B_MOD = '65' "
cQuery+="GROUP BY MESANO "
cQuery+=") danfe_65_sum ON DATE_FORMAT(pedidos.DATVEN, '%m/%Y') = danfe_65_sum.MESANO "
cQuery+="WHERE DATE_FORMAT(pedidos.DATVEN, '%Y') = '" + str(YEAR(M->DAT_HOJE),4,0) + "' AND pedidos.ST = '0' "
cQuery+="AND pedidos.TIPO_OPERACAO NOT IN (85, 90, 91) "
cQuery+="GROUP BY MESANO "
cQuery+="ORDER BY MESANO DESC "
oQuery1:= ConeccoesClass():ExecuteSQL(::oServer, cQuery)



