Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2013, 17:40
Avatar de YeisonSoto
YeisonSoto
 
Fecha de Ingreso: enero-2011
Ubicación: Cali, Colombia, Colombia
Mensajes: 116
Antigüedad: 13 años, 3 meses
Puntos: 4
Query no agrupa

Código SQL:
Ver original
  1. SELECT
  2.        "SDLITM" AS "Codigo1",
  3.        "SDAITM" AS "Codigo2",
  4.        "SDDSC1" AS "Producto",
  5.        "SDMCU" AS "Bodega",
  6.        "DRDL01" AS "N_Vendedor",  
  7.        SUM(sdsoqs) AS "Cantidad",
  8.        SUM(sduprc) AS "PrecioU",
  9.        SUM(SDAEXP) AS "Valor",
  10.        SUM(sduncs) AS "CostoU",
  11.        SUM(sdecst) AS "Costo",  
  12.        "IMALN" AS "IMALN",
  13.        "IMSRP1" AS "IMSRP1",
  14.        "IMSRP2" AS "Clasificacion2",
  15.        "IMSRP3" AS "Clasificacion3",
  16.        "IMSRP4" AS "Clasificacion4",
  17.        "IMSRP5" AS "Clasificacion5",
  18.        "IMSRP6" AS "Clasificacion6",
  19.        "IMSRP7" AS "Clasificacion7",
  20.        "IMSRP8" AS "Marca",
  21.        "IMSRP0" AS "Presentacion",
  22.        --"SDDOC" as "DOCUMENTO",
  23.        "SDDCT" AS "TIPO",
  24.        "SDUOM" AS "Unidad",
  25.        "SDCRCD" AS "Moneda",
  26.        SUM("SDAEXP"/100-"SDECST"/100) AS "UTILIDAD_B",
  27.         CASE
  28.                WHEN  "SDECST" = 0 THEN 0
  29.                ELSE  (SUM("SDAEXP"/100)/SUM("SDECST"/100) -1)*100
  30.         END "MARGEN",
  31.        "ABAN8" AS "ABAN8",
  32.        "ABALPH" AS "Cliente",
  33.        "ABAC09" AS "C_Vendedor",
  34.        "MCRP22" AS "Establecimiento"
  35. FROM PRUEBAVENTAS
  36. GROUP BY "SDDSC1",
  37.          "SDLITM",
  38.          "SDAITM",
  39.          "SDDSC1",
  40.          "SDMCU",
  41.          "DRDL01",
  42.          "IMALN",
  43.          "IMSRP1",
  44.          "IMSRP2",
  45.          "IMSRP3",
  46.          "IMSRP4",
  47.          "IMSRP5",
  48.          "IMSRP6",
  49.          "IMSRP7",
  50.          "IMSRP8",
  51.          "IMSRP0",
  52.          -- "SDDOC",
  53.            "SDDCT",
  54.            "SDUOM",
  55.            "SDCRCD",
  56.          --"SDECST",
  57.          "ABAN8",
  58.            "ABALPH",
  59.          "ABAC09",
  60.          "MCRP22"


El inconveniente está en esta seccion de codigo:


Código SQL:
Ver original
  1. CASE
  2.     WHEN "SDECST" = 0 THEN 0
  3.     ELSE (SUM("F42119"."SDAEXP"/100)/SUM("F42119"."SDECST"/100) -1)*100
  4. END "MARGEN",

En el WHEN, cuando COSTO (SDECST) sea igual a 0 debo mostrar 0, ahí es donde aparece el problema al no estar aplicando ninguna funcion de agrupacion debo incluir SDECST en el GROUP y al tener este valores diferentes no me agrupa los productos.

Como puedo hacer el WHEN "SDECST" = 0 THEN 0 si necesidad de incluir "SDECST en el GROUP BY?, ya que esto daña mi consulta.

http://squadronsuicida.webs.com/imag...-%20copia.xlsx