MySQL - Sacar varios valores diferentes

 
Vista:

Sacar varios valores diferentes

Publicado por Adrian (3 intervenciones) el 02/06/2014 16:34:38
Saludos.

Tengo montado una base de datos con 3 tablas, una para productos, otra de compras y otra de lineas de compra. Como cada vez que elimino un producto quiero que se borre tambien de las lineas de compra en caso de que este, tengo que actualizar la tabla compras con su subtotal, iva y total.

Entonces quiero hacer que recorra la tabla de compras y obtenga los identificadores de las compras en las que aparece ese producto. Después quiero recorrer cada una de esas compras y sumar el total de cada linea salvo la del propio producto.

La cosa es que tambien me gustaria saber el nº total de lineas que tiene esa compra, incluida la del producto a eliminar, ya que si se queda en 0, tendria que borrar la compra de la base de datos.

Entonces la pregunta sería como puedo sacar todos esos datos en una sola sentencia, si es que se puede hacer.

Gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Sacar varios valores diferentes

Publicado por Adrian (3 intervenciones) el 02/06/2014 17:22:00
Creo que ya he conseguido la sentencia, pero ahora me gustaria que me ayudaseis a mejorarla

select count(*), (select truncate(sum(total),2) from lineascompra where idcompras = lc.idcompras and idproducto != 'por1' group by idcompras) as total, idcompras from lineascompra lc where idcompras in (select c.idcompras from compras c, lineascompra lc where lc.idproducto != 'por1' and lc.idcompras in (select idcompras from lineascompra where idproducto='por1') group by c.idcompras) group by idcompras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sacar varios valores diferentes

Publicado por Adrian (3 intervenciones) el 02/06/2014 23:00:18
Sigo intentando sacarla, pero no se que tengo mal en la consulta

(select count(*) from lineasventa group by idventa) as p, (select idventa, truncate(sum(preciototal),2) as total from lineasventa lv where idventa in (select v.idventa from ventas v, lineasventa lv where lv.idventa != 'tg1' and lv.idventa in (select idventa from lineasventa where idproducto='tg1') group by v.idventa) and idproducto != 'tg1' group by idventa)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar