Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/05/2010, 09:25
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ayuda con una cosulta !!!!!!

Si un campo puede estar en un grupo de valores separados por comas, entonces deberías usar IN():
Código MySQL:
Ver original
  1.   TI.clave,
  2.   TI.ApsEntInt,
  3.   TI.NomEntInt,
  4.   P.portEntregados,
  5.   P.portCal
  6.     (SELECT
  7.       TCI.CveEntCom,
  8.       TEI.CveEntInt clave,
  9.       ApsEntInt,
  10.       NomEntInt
  11.     FROM TblComInt TCI INNER JOIN TblEntInt TEI USING(CveEntInt)
  12.     WHERE
  13.       TCI.CveEntCom IN(VALORES)
  14.       AND TCI.CveEntPrf=3) TI
  15.     (SELECT
  16.       TEP.CveEntInt clave2,
  17.       count(TEP.CveEntPrt) portEntregados,
  18.       count(TCP.CalEntPrt) portCal,
  19.       TEP.CveIntRev,
  20.       TEA.CveEntAct
  21.     FROM
  22.       TblEntAct TEA
  23.       INNER JOIN TblAsgAct TAA ON TEA.CveEntAct=TAA.CveEntAct
  24.       INNER JOIN TblEntPrt TEP ON TEA.CveEntAct=TEP.CveEntAct
  25.       LEFT JOIN TblCalPrt TCP ON TEP.CveEntPrt=TCP.CveEntPrt
  26.     WHERE
  27.       TEP.CveEntCom IN(VALORES)
  28.       AND TAA.CveEntCom IN(VALORES)
  29.       AND TEP.CveIntRev=0
  30.     GROUP BY clave2) P  ON TI.clave=P.clave2
  31.   ORDER BY TI.CveEntCom;
(la reescritura de la sentencia la hice para poder seguir mejor la lógica, y abreviar esos alias taaan largos)
Poniendo los valores quedaría:

Código MySQL:
Ver original
  1.   TI.clave,
  2.   TI.ApsEntInt,
  3.   TI.NomEntInt,
  4.   P.portEntregados,
  5.   P.portCal
  6.     (SELECT
  7.       TCI.CveEntCom,
  8.       TEI.CveEntInt clave,
  9.       ApsEntInt,
  10.       NomEntInt
  11.     FROM TblComInt TCI INNER JOIN TblEntInt TEI USING(CveEntInt)
  12.     WHERE
  13.       TCI.CveEntCom IN(4535,4536,4537,4538,4539,4540)
  14.       AND TCI.CveEntPrf=3) TI
  15.     (SELECT
  16.       TEP.CveEntInt clave2,
  17.       count(TEP.CveEntPrt) portEntregados,
  18.       count(TCP.CalEntPrt) portCal,
  19.       TEP.CveIntRev,
  20.       TEA.CveEntAct
  21.     FROM
  22.       TblEntAct TEA
  23.       INNER JOIN TblAsgAct TAA ON TEA.CveEntAct=TAA.CveEntAct
  24.       INNER JOIN TblEntPrt TEP ON TEA.CveEntAct=TEP.CveEntAct
  25.       LEFT JOIN TblCalPrt TCP ON TEP.CveEntPrt=TCP.CveEntPrt
  26.     WHERE
  27.       TEP.CveEntCom IN(4535,4536,4537,4538,4539,4540)
  28.       AND TAA.CveEntCom IN(4535,4536,4537,4538,4539,4540)
  29.       AND TEP.CveIntRev=0
  30.     GROUP BY clave2) P  ON TI.clave=P.clave2
  31.   ORDER BY TI.CveEntCom;
Se puede mejorar, pero sirve para la idea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)