Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/07/2015, 15:13
Avatar de vpino
vpino
 
Fecha de Ingreso: diciembre-2004
Ubicación: colombia
Mensajes: 265
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: error en consulta con iif

buen dia

mi situación es la siguiente:
1. tengo esta consulta que me arroja un registro para el f207_rowid_tercero=73664

Código SQL:
Ver original
  1. SELECT  DISTINCT f207_rowid_tercero,f200_nit,    f200_razon_social,   '' AS Macrozona,   '' AS Zona, '' AS SubZona,'' AS Canal
  2. FROM t461_cm_docto_factura_venta
  3. INNER JOIN (t207_mm_criterios_clientes INNER JOIN t206_mm_criterios_mayores ON (f207_id_cia=f206_id_cia AND f207_id_plan_criterios=f206_id_plan AND f207_id_criterio_mayor=f206_id  AND  (f206_id_plan= 001 OR f206_id_plan= 002 OR f206_id_plan= 003 OR f206_id_plan= 004))) ON (f461_rowid_tercero_fact=f207_rowid_tercero AND f461_id_sucursal_fact=f207_id_sucursal AND f461_id_cia=f207_id_cia)
  4. INNER JOIN  t201_mm_clientes ON (f461_rowid_tercero_fact=f201_rowid_tercero AND f461_id_sucursal_fact=f201_id_sucursal)
  5. INNER JOIN t200_mm_terceros ON (f200_rowid=f201_rowid_tercero AND f200_id_cia=f201_id_cia)
  6. WHERE f461_id_fecha BETWEEN '01/06/2015' AND '01/06/2015'
  7. AND (f200_nit LIKE '80185344%')

este es el registro arrojado
f207_rowid_tercero-f200_nit-f200_razon_social-Macrozona-Zona-SubZona-Canal
73664- 80185344- LOBO TAPIA VITERMO DE JESUS

2. en otra consulta este mismo f207_rowid_tercero=73664 tiene otros datos que necesito asociarlos con la consulta del punto 1 (el campo f206_descripcion).
Código SQL:
Ver original
  1. SELECT  DISTINCT  f207_rowid_tercero,f207_id_sucursal,f207_id_plan_criterios,f206_descripcion, f207_id_criterio_mayor FROM t207_mm_criterios_clientes INNER JOIN t206_mm_criterios_mayores ON (f207_id_cia=f206_id_cia AND f207_id_plan_criterios=f206_id_plan AND f207_id_criterio_mayor=f206_id) WHERE (f206_id_plan= 001 OR f206_id_plan= 002 OR f206_id_plan= 003 OR f206_id_plan= 004)
  2. AND f207_rowid_tercero=73664  AND f207_id_sucursal=001
  3. ORDER BY f207_rowid_tercero,f207_id_sucursal,f207_id_plan_criterios,f207_id_criterio_mayor

estos son los registros arrojados:
f207_rowid_tercero-f207_id_sucursal-f207_id_plan_criterios-f206_descripcion-f207_id_criterio_mayor
73664-001-001- COSTA-0001
73664-001-002- COSTA BAJA-0008
73664-001-003 CORDOBA-0005
73664-001-004 TRADICIONAL-0001

pero al asociar las dos consultas en una sola me muestra cuatro registros. yo necesito que me muestre un solo registro(que los datos de la consulta anterior ser muestren en una sola fila)

esta es la consulta final y sus datos que no me funciona.
Código SQL:
Ver original
  1. SELECT  DISTINCT f207_rowid_tercero,f200_nit,    f200_razon_social,   iif (f207_id_plan_criterios= 001, f206_descripcion,'') AS Macrozona,     iif (f207_id_plan_criterios= 002, f206_descripcion,'') AS Zona, iif (f207_id_plan_criterios= 003, f206_descripcion,'') AS SubZona,iif (f207_id_plan_criterios= 004, f206_descripcion,'') AS Canal
  2. FROM t461_cm_docto_factura_venta
  3. INNER JOIN (t207_mm_criterios_clientes INNER JOIN t206_mm_criterios_mayores ON (f207_id_cia=f206_id_cia AND f207_id_plan_criterios=f206_id_plan AND f207_id_criterio_mayor=f206_id  AND  (f206_id_plan= 001 OR f206_id_plan= 002 OR f206_id_plan= 003 OR f206_id_plan= 004))) ON (f461_rowid_tercero_fact=f207_rowid_tercero AND f461_id_sucursal_fact=f207_id_sucursal AND f461_id_cia=f207_id_cia)
  4. INNER JOIN  t201_mm_clientes ON (f461_rowid_tercero_fact=f201_rowid_tercero AND f461_id_sucursal_fact=f201_id_sucursal)
  5. INNER JOIN t200_mm_terceros ON (f200_rowid=f201_rowid_tercero AND f200_id_cia=f201_id_cia)
  6. WHERE f461_id_fecha BETWEEN '01/06/2015' AND '01/06/2015'
  7. AND (f200_nit LIKE '80185344%')

f207_rowid_tercero-f200_nit-f200_razon_social-Macrozona-Zona-SubZona-Canal
73664-80185344-LOBO TAPIA VITERMO DE JESUS- - - -TRADICIONAL
73664-80185344-LOBO TAPIA VITERMO DE JESUS- - -CORDOBA -
73664-80185344-LOBO TAPIA VITERMO DE JESUS- -COSTA BAJA - -
73664-80185344-LOBO TAPIA VITERMO DE JESUS-COSTA-

Última edición por gnzsoloyo; 24/07/2015 a las 08:28