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

Seleccionar 0,1 o 2 dependiendo de varias tablas

Estas en el tema de Seleccionar 0,1 o 2 dependiendo de varias tablas en el foro de Mysql en Foros del Web. Hola buenas, Tengo el siguiente problema.. TABLA_A TABLA_B.id id alquiler 0/1 venta 0/1 TABLA_B id Necesito hacer dos consultas por separado, para sacar el régimen ...
  #1 (permalink)  
Antiguo 31/05/2012, 02:59
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Seleccionar 0,1 o 2 dependiendo de varias tablas

Hola buenas,

Tengo el siguiente problema..

TABLA_A

TABLA_B.id
id
alquiler 0/1
venta 0/1

TABLA_B

id

Necesito hacer dos consultas por separado, para sacar el régimen (alquiler / venta) de la TABLA A en el mismo formato que en la consulta independiente de la TABLA B, por ejemplo:

Consulta TABLA_A:

Sacar 0 si alquiler y venta estan a 0
Sacar 1 si esta en venta
Sacar 2 si esta en alquiler

Consulta TABLA_B:

Sacar 0 si todos los registros de la tabla_a que estan relacionados tiene como alquiler y venta 0
Sacar 1 si todos los registros de la tabla_a que estan relacionados tiene como alquiler 0 y venta 1
Sacar 2 si existen registros de la tabla_a que estan como alquiler y venta a 1

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #2 (permalink)  
Antiguo 31/05/2012, 07:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Seleccionar 0,1 o 2 dependiendo de varias tablas

No se acaba de entender la estructura pero voy a suponer

TablaA
idA
idB
alquiler
venta

TablaB
idB
nombre (por poner algo)


Código MySQL:
Ver original
  1. SELECT idA,idB,alquiler,venta,
  2.              if(alquiler=0 AND venta=0,0,if(alquiler=0 AND venta=1, 1,2))
  3. FROM tablaA;
La consulta de la tablaB se complica pero te habria una forma de solucionarla modificando la estructura....Si las reglas de tu negocio lo permiten. Por los resultado que pides parece que si.


No se acaba de entender la estructura pero voy a suponer

TablaA
idA
idB
alqVenta (0 alquiler 1 Venta)

TablaB
idB
nombre (por poner algo)


Código MySQL:
Ver original
  1. SELECT idA,idB,alqVenta
  2. FROM tablaA;
  3.  
  4. SELECT B.idB,B.nombre,
  5.              if(SUM(A.alqVenta)=0,0,if(SUM(A.alqVenta)=COUNT(*),2,1)) as estado
  6. FROM tablaB B INNER JOIN tablaA A
  7.           ON B.idB=A.idB
  8. GROUP BY B.idB,B.nombre;

Creo???
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: dependiendo, registros, tabla, tablas
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 12:44.