Ver Mensaje Individual
  #5 (permalink)  
Antiguo 03/12/2009, 11:15
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 14 años, 5 meses
Puntos: 4
Respuesta: ejercicio de mysql

gracias por las respuestas, han tenido toda la razon el prome era la forma como comparaba en la subseleccion.

el codigo final me quedo así:
Código sql:
Ver original
  1. SELECT
  2.   P.CodigoPrograma,P.Descripcion `Programa`,
  3.   COUNT(EC.CodigoEquipoComputo) `PCS`,
  4.   SUM(PI.FlagTieneLicencia) AS `Pcs con licencia`
  5. FROM
  6.   EquipoComputo EC
  7.   INNER JOIN ProgramasInstalados PI USING(CodigoEquipoComputo)
  8.   INNER JOIN Programas p USING(CodigoPrograma)
  9. WHERE
  10.       (YEAR(EC.FechaAdquisicion) BETWEEN 2000 AND 2002) AND
  11.       NOT (EC.CodigoEquipoComputo IN (SELECT
  12.                                          PM.CodigoEquipoComputo
  13.                                       FROM
  14.                                          PlanMantenimiento PM
  15.                                       WHERE
  16.                                          (YEAR(PM.FechaRevision)=2001)
  17.                                       GROUP BY (PM.CodigoEquipoComputo)
  18.                                       HAVING SUM(PM.CodigoEquipoComputo)>2
  19.                                      ))
  20. GROUP BY P .Descripcion
  21. ORDER BY P.CodigoPrograma;

No se si pueden explicarme un poco la relacion que hacen con inner join, los entiendo en parte pero ese using que ponen usa exclusivamente un campo de la tabla?. Tambien vi que para renombrar no uso as.. como en esto: ProgramasInstalados PI

SI tienen ahi algo que me ayude a comprender los inner Join :D

saludos y gracias