Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

Count

Estas en el tema de Count en el foro de PostgreSQL en Foros del Web. Hi, Estoy haciendo en query utilizando un jquery, pero no me queda bien, anexo consulta, SELECT count(m.id_monitoreo)as s, ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa from tbl_monitoreo m INNER JOIN ...
  #1 (permalink)  
Antiguo 12/01/2010, 08:09
 
Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 0
Count

Hi,
Estoy haciendo en query utilizando un jquery, pero no me queda bien, anexo consulta,


SELECT count(m.id_monitoreo)as s, ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa from tbl_monitoreo m
INNER JOIN cat_empresa c ON (m.id_empresa = c.id_empresa)
INNER JOIN tbl_caractrevper p ON (p.id_tipomedio = m.id_tipomedio and p.id_medio = m.id_medio)
INNER JOIN cat_tipomedio tm ON (m.id_tipomedio = tm.id_tipomedio)
INNER JOIN cat_caracteristica ca ON (m.id_caracteristica = ca.id_caracteristica)
where m.id_ciudad =1 and m.d_fechacaptura >= '2009-10-01' and m.d_fechacaptura <= '2010-01-01' and m.id_empresa = 3 and m.id_caracteristica = 1
group by ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa

UNION

SELECT count(m.id_monitoreo) as s, ca.id_caracteristica,ca.cv_caracteristica, c.id_empresa from tbl_monitoreointernet m
INNER JOIN cat_empresa c ON (m.id_empresa = c.id_empresa) INNER JOIN cat_tipomedio tm ON (m.id_tipomedio = tm.id_tipomedio)
INNER JOIN cat_caracteristica ca ON (m.id_caracteristica = ca.id_caracteristica) where m.id_ciudad=1 and m.d_fechacaptura >= '2009-10-01'
and m.d_fechacaptura <= '2010-01-01' and m.id_empresa = 3 and m.id_caracteristica = 1
group by ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa

Esto me da como resultado
s=1 y id_empresa=3
s=3 y id_empresa=3

Lo que quiero es, que me muestre como resultado final
s=4 y id_empresa=3

espero que me puedan ayudar. Gracias
  #2 (permalink)  
Antiguo 12/01/2010, 08:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Count

s sería la suma de 1 y 3?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 12/01/2010, 08:36
 
Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Count

hi,

exacto, seria 1 y 3 igual a 4, pero en la consulta utilizando count.
  #4 (permalink)  
Antiguo 12/01/2010, 08:42
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Count

Código SQL:
Ver original
  1. SELECT SUM(t1.s), t1.id_empresa FROM (
  2. SELECT COUNT(m.id_monitoreo)AS s, ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa FROM tbl_monitoreo m
  3. INNER JOIN cat_empresa c ON (m.id_empresa = c.id_empresa)
  4. INNER JOIN tbl_caractrevper p ON (p.id_tipomedio = m.id_tipomedio AND p.id_medio = m.id_medio)
  5. INNER JOIN cat_tipomedio tm ON (m.id_tipomedio = tm.id_tipomedio)
  6. INNER JOIN cat_caracteristica ca ON (m.id_caracteristica = ca.id_caracteristica)
  7. WHERE m.id_ciudad =1 AND m.d_fechacaptura >= '2009-10-01' AND m.d_fechacaptura <= '2010-01-01' AND m.id_empresa = 3 AND m.id_caracteristica = 1
  8. GROUP BY ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa
  9.  
  10. UNION
  11.  
  12. SELECT COUNT(m.id_monitoreo) AS s, ca.id_caracteristica,ca.cv_caracteristica, c.id_empresa FROM tbl_monitoreointernet m
  13. INNER JOIN cat_empresa c ON (m.id_empresa = c.id_empresa) INNER JOIN cat_tipomedio tm ON (m.id_tipomedio = tm.id_tipomedio)
  14. INNER JOIN cat_caracteristica ca ON (m.id_caracteristica = ca.id_caracteristica) WHERE m.id_ciudad=1 AND m.d_fechacaptura >= '2009-10-01'
  15. AND m.d_fechacaptura <= '2010-01-01' AND m.id_empresa = 3 AND m.id_caracteristica = 1
  16. GROUP BY ca.id_caracteristica,ca.cv_caracteristica,c.id_empresa
  17. ) AS t1;

algo así?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 12/01/2010, 08:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Count

hola huesos 52

Estoy tratando de probar la solucion que me indicas pero me marca este error:

********** Error **********

ERROR: column "t1.id_empresa" must appear in the GROUP BY clause or be used in an aggregate function

Puedes ayudarme por favor
  #6 (permalink)  
Antiguo 12/01/2010, 08:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Count

tienes razón

Código SQL:
Ver original
  1. SELECT SUM(t1.s), t1.id_empresa FROM (
  2. SELECT COUNT(m.id_monitoreo)AS s, ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa FROM tbl_monitoreo m
  3. INNER JOIN cat_empresa c ON (m.id_empresa = c.id_empresa)
  4. INNER JOIN tbl_caractrevper p ON (p.id_tipomedio = m.id_tipomedio AND p.id_medio = m.id_medio)
  5. INNER JOIN cat_tipomedio tm ON (m.id_tipomedio = tm.id_tipomedio)
  6. INNER JOIN cat_caracteristica ca ON (m.id_caracteristica = ca.id_caracteristica)
  7. WHERE m.id_ciudad =1 AND m.d_fechacaptura >= '2009-10-01' AND m.d_fechacaptura <= '2010-01-01' AND m.id_empresa = 3 AND m.id_caracteristica = 1
  8. GROUP BY ca.id_caracteristica,ca.cv_caracteristica,c.id_emp resa
  9.  
  10. UNION
  11.  
  12. SELECT COUNT(m.id_monitoreo) AS s, ca.id_caracteristica,ca.cv_caracteristica, c.id_empresa FROM tbl_monitoreointernet m
  13. INNER JOIN cat_empresa c ON (m.id_empresa = c.id_empresa) INNER JOIN cat_tipomedio tm ON (m.id_tipomedio = tm.id_tipomedio)
  14. INNER JOIN cat_caracteristica ca ON (m.id_caracteristica = ca.id_caracteristica) WHERE m.id_ciudad=1 AND m.d_fechacaptura >= '2009-10-01'
  15. AND m.d_fechacaptura <= '2010-01-01' AND m.id_empresa = 3 AND m.id_caracteristica = 1
  16. GROUP BY ca.id_caracteristica,ca.cv_caracteristica,c.id_empresa
  17. ) AS t1 GROUP BY t1.idempresa;
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #7 (permalink)  
Antiguo 12/01/2010, 09:04
 
Fecha de Ingreso: febrero-2009
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Count

Gracias huesos 52, ya quedó listo.
  #8 (permalink)  
Antiguo 12/01/2010, 09:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 1 mes
Puntos: 360
Respuesta: Count

de nada compa.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming

Etiquetas: count
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:45.