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

2 condiciones

Estas en el tema de 2 condiciones en el foro de Mysql en Foros del Web. saludos, necesito hacer lo siguiente pero necesito saber si se puede hacer: select z1.campo1 z2.campo2 from tabla1 z1 inner join tabla2 z2 where condicion el ...
  #1 (permalink)  
Antiguo 07/08/2009, 13:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
2 condiciones

saludos, necesito hacer lo siguiente pero necesito saber si se puede hacer:

select z1.campo1 z2.campo2 from tabla1 z1 inner join tabla2 z2 where condicion

el tema es que al campo 2 necesito darle otras condiciones, si alguien me pudiera ayudar u orientar gracias

algo asi como esto:

mira es u poco complejo pero tratare de resumirlo.....

tengo la siguiente tabla1

id fecha valor
1 2007/02/23 33
2 2007/02/23 33
1 2007/02/24 22
2 2007/02/24 65

tabla 2

id fecha consumo
1 2007/02 57
2 2007/03 53


si hago una consulta como la siguiente

select id, fecha , sum(valor) from tabla1 where fecha between 2007/02/23 and 2007/02/24 group by id
me va a dar como resultado

id fecha valor
1 2007/02/23 55
2 2007/02/23 98

lo que necesito es agregar a la tabla resultado el campo consumo de la tabla 2 pero en base a la fecha mes y año solamente no el dia por que en la tabla2 no existe dia......gracias por tomarse la molestia de leer

Última edición por jalh1977; 07/08/2009 a las 13:56
  #2 (permalink)  
Antiguo 07/08/2009, 14:27
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: 2 condiciones

¿Por qué no existe día? y ¿qué tipo de campo es ese de la tabla2: es varchar o qué? Piensa en que una consulta sólo sería precisa si fuera de mes completo.
  #3 (permalink)  
Antiguo 07/08/2009, 15:36
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: 2 condiciones

Cita:
Iniciado por jurena Ver Mensaje
¿Por qué no existe día? y ¿qué tipo de campo es ese de la tabla2: es varchar o qué? Piensa en que una consulta sólo sería precisa si fuera de mes completo.
es del tipo varchar, esta tabla se genera desde una consulta y esa consulta la guardo, mira es sobre lecturas electricas, entonces de 20 a 20 de cada mes se guardan ( aun que no muchas veces es asi , aveces es de 21 a 21 etc..), ejemplo si guardo de 20/01/2009 al 20/02/2009 corresponderia al consumo de enero, entonces despues cuando consulte febrero voy a consultar enero 2009 para asi hacer la comparacion y saber la variacion, no se si entiendes, gracias
  #4 (permalink)  
Antiguo 08/08/2009, 01:20
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: 2 condiciones

Pon un ejemplo con los datos que tienes y lo que deberías obtener. Piensa en todas las posibilidades.
  #5 (permalink)  
Antiguo 10/08/2009, 13:24
 
Fecha de Ingreso: septiembre-2008
Mensajes: 242
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: 2 condiciones

saluods mira tengo el siguiente codigo:

Código mysql:
Ver original
  1. SELECT z1.id Medidor,z2.nombre Nombre, min(fechai)Fecha_Inicio,max(z1.fechai)Fecha_fin,z3.consumo Consumo_anterior, (sum(z1.lectura))/ 3 Consumo,FORMAT( ((z3.consumo -  sum(z1.lectura)/3)/z3.consumo)*100,2)  Variacion  from nortepordia z1 INNER JOIN locales_norte z2 ON (z1.id = z2.id) INNER JOIN norte_cortado z3 ON(z2.nombre = z3.nombre)  WHERE  z1.fechai  between'"&fecha1&"' and '"&fecha2&"'  group by z1.id

el tema es que al campo
Código mysql:
Ver original
  1. z3.consumo Consumo_anterior
necesito darle otra condicion para que me traiga la lectura del mes anteior que tengo en otra tabla....gracias
  #6 (permalink)  
Antiguo 11/08/2009, 03:23
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: 2 condiciones

He corregido, porque creo que esto te vendrá mejor:
Código sql:
Ver original
  1. SELECT tabla.id, SUM( tabla.lectura ) tot, tabla2.consumo AS mesanterior
  2. FROM `tabla`
  3. INNER JOIN tabla2 ON tabla.id = tabla2.id
  4. WHERE (
  5. tabla.fecha
  6. BETWEEN '2009/02/01'
  7. AND '2009/02/29'
  8. )
  9. OR (
  10. tabla2.fecha LIKE '2009/01'
  11. )
  12. GROUP BY tabla.id

Esto te sacará los valores de las dos tablas y separará para cada id el valor del sumatorio del mes actual del mes anterior, si es que es eso lo que buscas.

Última edición por jurena; 11/08/2009 a las 04:30
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 00:02.