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

Consulta a base de datos y que muestre unicamente los campos con valor 0000000

Estas en el tema de Consulta a base de datos y que muestre unicamente los campos con valor 0000000 en el foro de Mysql en Foros del Web. Buenas, inmaginad un ticket de compra, que tiene varias lineas de texto. En cada linea hay un ID_ARTICULO. Necesito hacer una consulta a esa tabla ...
  #1 (permalink)  
Antiguo 21/01/2016, 04:37
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Consulta a base de datos y que muestre unicamente los campos con valor 0000000

Buenas, inmaginad un ticket de compra, que tiene varias lineas de texto. En cada linea hay un ID_ARTICULO. Necesito hacer una consulta a esa tabla que contiene el ticket que ÚNICAMENTE me muestra los tickets que tengan el ID_ARTICULO 00000000 y nada más, me da igual si tiene uno o dos articulos pero que UNICAMENTE sean 00000000. Yo he realizado una consulta pero me muestra los que tienen ID_ARTICULO 00000000 y otros artículos. Alguna idea? Gracias. Muestro la consulta. Es un poco lio porque son dos tablas, una contiene los pagos y la otra las lineas de presupuesto. MUCHAS GRACIAS

Cita:
Editado: Código de programacion no permitido en foros de Bases de DAtos.
Leer las reglas del foro, por favor.
Código SQL:
Ver original
  1. SELECT *
  2. FROM lineas_presupuesto, pagos
  3. WHERE lineas_presupuesto.id_presupuesto = pagos.id_presupuesto
  4. AND lineas_presupuesto.id_articulo = '00000000'
  5. AND lineas_presupuesto.estado_presupuesto = 'ticket'
  6. AND pagos.metodo_pago = 'Efectivo'
  7. ORDER BY `lineas_presupuesto`.`id_presupuesto` ASC

Última edición por gnzsoloyo; 21/01/2016 a las 06:37
  #2 (permalink)  
Antiguo 21/01/2016, 06:42
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Vamospor partes:
* Si el campo id_articulo e numérico, jamás te podrá devolver un "00000000", porque no existe eso en un valor numérico, es simplemente un cero ("0").
* Si tuvieses un numero de producto en cero, tienes un serio problema de consistencia de datos, porque un ID de un producto JAMAS puede ser cero, ya que SE SUPONE que es la clave primaria... y una clave primaria no debería ser cero (además de ser única, por lo que tampoco deberia poder devolver mas de un producto).

Cita:
Es un poco lio porque son dos tablas, una contiene los pagos y la otra las lineas de presupuesto

Eso no es un lio. es lo normal...

Hagamos una cosa, para simplificar:
Muestranos un ejemplo del resultado que obtienes ahora, y otro ejemplo de cómo supones que deberías obtenerlo, y veamos cual es el problema.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/01/2016, 08:42
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Buenas! Gracias por tu respuesta. Te adjunto imágen para hacerlo más visual de lo que quiero que se me muestre. Gracias!!!

Última edición por carbo2022; 21/01/2016 a las 08:49
  #4 (permalink)  
Antiguo 21/01/2016, 09:24
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

para empezar estas usando joins implicitos, trata de usar joins explicitos para que tu consulta quede:



Código SQL:
Ver original
  1. SELECT * FROM lineas_presupuesto AS t1
  2. INNER JOIN pagos AS t2 ON (t1.id_presupuesto=t2.id_presupuesto)
  3. WHERE  t1.id_articulo = '00000000'

ahora te has puesto a pensar que no estas haciendo el join de tus tablas por id_articulo? sino que lo estas haciendo por id_presupuesto, por lo que el codigo puede ser diferente....prueba con el query que te muestro y te vas a dar cuenta cuales son los registros que no necesitas y que ocupas para discriminar estos :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 21/01/2016, 09:27
 
Fecha de Ingreso: junio-2011
Mensajes: 289
Antigüedad: 12 años, 10 meses
Puntos: 15
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Si tienes en PAGOS id_presupuesto (que supongo es foránea de lineas_presupuesto), no debería ser varchar y la otra int----> 4 != 000004
  #6 (permalink)  
Antiguo 21/01/2016, 09:49
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Cita:
Iniciado por Libras Ver Mensaje
para empezar estas usando joins implicitos, trata de usar joins explicitos para que tu consulta quede:



Código SQL:
Ver original
  1. SELECT * FROM lineas_presupuesto AS t1
  2. INNER JOIN pagos AS t2 ON (t1.id_presupuesto=t2.id_presupuesto)
  3. WHERE  t1.id_articulo = '00000000'

ahora te has puesto a pensar que no estas haciendo el join de tus tablas por id_articulo? sino que lo estas haciendo por id_presupuesto, por lo que el codigo puede ser diferente....prueba con el query que te muestro y te vas a dar cuenta cuales son los registros que no necesitas y que ocupas para discriminar estos :)
He realizado la consulta como me pones y aun asi me sigue mostrando id_articulo distintos a 0000000 :( Es decir, el resultado me da todos los articulos que tienen 000000 pero lo que yo quiero es que directamente si contiene un id_articulo distinto a 000000 no me salga en la consulta realizada
  #7 (permalink)  
Antiguo 21/01/2016, 10:21
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Eso es lo que se esperaba que mostrara articulos que no tienen ese codigo porque estas haciendo el join por id_presupuesto, cuales son los campos de tus tablas???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 21/01/2016, 10:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Cita:
Iniciado por carbo2022 Ver Mensaje
He realizado la consulta como me pones y aun asi me sigue mostrando id_articulo distintos a 0000000 :( Es decir, el resultado me da todos los articulos que tienen 000000 pero lo que yo quiero es que directamente si contiene un id_articulo distinto a 000000 no me salga en la consulta realizada
Vovlamos al principio...

La query que pusiste era esta:
Código MySQL:
Ver original
  1. FROM lineas_presupuesto, pagos
  2. WHERE lineas_presupuesto.id_presupuesto = pagos.id_presupuesto
  3. AND lineas_presupuesto.id_articulo = '00000000'
  4. AND lineas_presupuesto.estado_presupuesto = 'ticket'
  5. AND pagos.metodo_pago = 'Efectivo'
  6. ORDER BY `lineas_presupuesto`.`id_presupuesto` ASC
En esta query lo que le estás pidiendo es que SI te muestre los articulos con codigo 000000...
Pero si quieres que NO los muestre, pues simplemente los excluyes...
Código MySQL:
Ver original
  1. FROM lineas_presupuesto LP INNER JOIN pagos PG ON LP.id_presupuesto = PG.id_presupuesto
  2. WHERE LP.id_articulo <> '00000000'
  3.     AND LP.estado_presupuesto = 'ticket'
  4.     AND PG.metodo_pago = 'Efectivo'
  5. ORDER BY LP.id_presupuesto ASC
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 21/01/2016, 12:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Disculpa no me he explicado bien. lo que quiero es que SI que me muestre la tabla que contiene los articulos con 00000000 pero si esa tabla tiene un articulo 00000000 y otro artículo distinto a 00000000 NO me los muestre. Unicamente me muestre los que tienen 00000000 como artículo/s, me da igual los que tenga, pero que sean 00000000. Si tiene otro distinto a ese que no me lo muestre. Gracias ! :)
  #10 (permalink)  
Antiguo 21/01/2016, 12:03
 
Fecha de Ingreso: septiembre-2008
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

Cita:
Iniciado por Libras Ver Mensaje
Eso es lo que se esperaba que mostrara articulos que no tienen ese codigo porque estas haciendo el join por id_presupuesto, cuales son los campos de tus tablas???
Aqui puse todos los campos http://fotos.subefotos.com/75f40d2a42a168cd2f3a21a2e058b1f8o.png
Gracias!
  #11 (permalink)  
Antiguo 22/01/2016, 00:37
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Consulta a base de datos y que muestre unicamente los campos con valor 000

que tipo de dato son tus ID's porque aparece en una tabla el id_presupuesto como 1,2,3 y en la otra 0001,0002,0003???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campos, select, sql, tabla, valor
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 02:59.