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

asesoría en consulta sql tabla en mysql

Estas en el tema de asesoría en consulta sql tabla en mysql en el foro de Mysql en Foros del Web. Muy buenas tardes después de tanto pensar como realizar la operación en la que espero me ayuden he decidido venir y preguntar. Tengo lo siguiente, ...
  #1 (permalink)  
Antiguo 10/04/2012, 16:26
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
asesoría en consulta sql tabla en mysql

Muy buenas tardes después de tanto pensar como realizar la operación en la que espero me ayuden he decidido venir y preguntar.

Tengo lo siguiente, hay una tabla en una bd mysql con los siguientes campos:

idproducto: aquí se almacena el código del producto
nombreproducto: contiene el nombre del producto
idproveedor: aquí está el nit del proveedor del producto
stock: cantidad disponible del producto
idbodega: bodega o almacén en el que se encuentra el producto

hay 8 bodegas es decir 8 almacenes.

he realizado una consulta sql que me arroje los productos que tengan stock = 0 ( cero) pero el problema está en que necesito sacar los códigos de productos que estén en cero pero que a su vez se encuentren en las 8 bodegas

por ejemplo:

idproducto = 14256

si hay 8 bodegas que son bod1, bod2, bod3, bod4, bod5,bod6, bod7, bod8

necesito que el código 14256 se encuentre en bod1, bod2, bod3, bod4, bod5,bod6, bod7, bod8


espero haberme hecho entender estoy bien enredado en este asunto agradeceré mucho la colaboración que me puedan brindar.
  #2 (permalink)  
Antiguo 10/04/2012, 17:14
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: asesoría en consulta sql tabla en mysql

A priori me surgen algunas preguntas como, ¿tienes alguna clave primaria (PK)?, ¿Las idproducto se pueden repetir y en el caso de que se repitan siempre tienen un idbodega distinto?
Quiero decir, puede darse el caso de que el mismo producto aparezca con el mismo idbodega más de una vez.
  #3 (permalink)  
Antiguo 11/04/2012, 06:53
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: asesoría en consulta sql tabla en mysql

Hola zalito gracias por responder, olvide indicar que no hay llave primaria y por tanto el idproducto se puede repetir hasta 8 veces por cada bodega ejemplo:

idproducto = 14256

Código HTML:
idproducto | nombreproducto |    idproveedor     |stock     | idbodega |
14256          CD-RW                 845269          0          bod1 
14256          CD-RW                 845269          0          bod2
14256          CD-RW                 845269          0          bod3
14256          CD-RW                 845269          0          bod4
14256          CD-RW                 845269          0          bod5
14256          CD-RW                 845269          0          bod6
14256          CD-RW                 845269          0          bod7
14256          CD-RW                 845269          0          bod8
lo que necesito es que la consulta sql me arroje el resultado tal como esta en el ejemplo, que el código idproducto me aparezca con stock 0 en las 8 bodegas.

actualmente la tabla tiene 200 registros aproximadamente entre esos registros tengo códigos idproducto que me aparecen con stock en cero pero que no están en cero en las 8 bodegas, lo que necesito es que el sql me muestre los código idproducto que aparecen con stock 0 en las 8 bodegas, no se si aún no me he hecho entender.

gracias
  #4 (permalink)  
Antiguo 11/04/2012, 17:38
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: asesoría en consulta sql tabla en mysql

Perdona que tarde en constestar es que no consigo hacerlo, mira que lo tuve que escribir algo parecido hace poco pero no lo encuentro y no lo consigo volver a sacar...

Vas a trabajar sólo con la DB o vas a tratar la consulta con otro lenguaje como PHP, es que usando algunas variables y tal si se me ocurre.
  #5 (permalink)  
Antiguo 12/04/2012, 15:43
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: asesoría en consulta sql tabla en mysql

holaa amigo gracias por ayudarme, la idea es solo tirarlo en sql desde navicat para que enseguida cuando me realice la busqueda pueda exportar en xls el resultado.
  #6 (permalink)  
Antiguo 13/04/2012, 02:03
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: asesoría en consulta sql tabla en mysql

Hombre, una cosa fácil es obtener las ids y el número de bodegas que tienen stock 0:
Código PHP:
SELECT idproducto,COUNT(*) FROM almacen WHERE stock '0' GROUP BY idproducto ORDER BY COUNT(*) 
Como no sé si te valdrá seguiré pensando sobre lo otro

EDITO:
Hay una cuestión muy importante, ¿todos los productos aparecen con todas las bodegas o hay algún producto que no aparezca las 8 veces?
Si todos aparecen con las 8 bodegas ya sé como solucionarlo:
Código PHP:
SELECT DISTINCT idproducto FROM almacén WHERE idproducto NOT IN (SELECT DISTINCT idproducto FROM almacén WHERE stock <> '0'
No sé porque me había empeñado en hacerlo de otra manera y así era mucho más fácil!

Última edición por zalito12; 13/04/2012 a las 07:02
  #7 (permalink)  
Antiguo 13/04/2012, 11:14
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia - Barranquilla
Mensajes: 66
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: asesoría en consulta sql tabla en mysql

Amigo muchas gracias me ha funcionado era lo que estaba buscando, ahora hago la siguiente pregunta ya puedo hacer el select y extraigo lo que necesito pero hay algún método similar a las consultas que me diste pero para eliminar dichos registros
  #8 (permalink)  
Antiguo 13/04/2012, 13:22
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 13 años
Puntos: 67
Respuesta: asesoría en consulta sql tabla en mysql

Para borrarlos, claro:
Código PHP:
DELETE FROM almacen WHERE idproducto NOT IN (SELECT DISTINCT idproducto FROM almacén WHERE stock <> '0'
SI vas a borrar algo importante te aconsejo que utilices los TRANS, no vaya a ser que pierdas información importante (BEGIN TRANSACTION, ROLLBACK, COMMIT, etc)

Etiquetas: sql, tabla, asesor, campos
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 14:02.