-2

tengo las siguientes tablas.

TABLA: CLIENTES
id  nombre              cedula      direccion   ciudad          sexo
1   Caroline Covelly    1067411355  Cerca       Barranquilla    Femenino
2   Lucia Torres        1412751261  Lejos       Leon            Femenino
3   Miguel Gamarra      1023502392  Muy Lejos   Sincelejo       Masculino
4   Jesus Gonzalez      1067234656  Medio       Pueblo perdio   Masculino
TABLA: INVENTARIO
id   nombrep     detallep        precio
1   Chocolatina Chocolate en barra  1000
2   Butifarra   Carne embutida      2000
3   Bollo       Producto casero     4000
4   Gaseosa     Bebida embotellada  30000
5   Pan         Producto casero     500
6   Yuca        Por libra           800
7   Papas       Producto casero     1200
8   Chorizos    Embutido            800
9   Queso       Producto lacteo     7000
10  Suero       Producto lacteo     3000
id   fecha   producto cantidad cliente
1   2018-10-01  6        2        1
2   2018-10-10  3        4        2
3   2018-10-11  9        3        3
4   2018-10-16  4        7        4

Necesito obtener los nombres, cédulas, sexo, nombre de producto, cantidad, precio unitario y precio total que se pagó de todos los productos comprados. Con SQL.

1 Answers1

2

Para obtener los datos que deseas, debes ensamblar una consulta donde expandas las relaciones que hay entre las tablas haciendo uso de operaciones join. En el caso concreto de las tablas que muestras y las relaciones que puedo intuir que hay en ellas, yo utilizaría en concreto inner join.

Partiendo de la última tabla, que asumo se llama Ventas voy a mostrarte cómo relacionarla con la tabla Inventario, de manera que tengas una ruta a seguir y ya te queda a ti ensamblar la consulta final que te devuelva todos los resultados.

Para realizar la consulta, voy a asignar un alias a cada tabla, de manera que pueda referenciar los campos de cada una sin ambigüedad (un requisito en SQL) y sin utilizar todo el nombre de la tabla. Para la tabla Ventas usaré el alias V y para la tabla Inventario el alias I.

Esto lo logro añadiendo luego del nombre de cada tabla la clausula as seguida del alias que quiero utilizar. Entonces, en el resto del select, puedo referenciar el campo id de la tabla Ventas utilizando v.id.

En la clausula on del inner join, voy a relacionar la tabla ventas con la de inventario mediante el id de inventario, que en la tabla ventas asumo es el campo producto, de esta forma: on i.id = v.producto.

Para que el resultado sea más legible, también coloco algunos alias a las columnas. Por ejemplo, al campo nombrep de la tabla Inventario le llamaré nombre_producto.

select   i.nombrep as nombre_producto
       , v.cantidad 
       , i.precio as precio_unitario
       , v.cantidad * i.precio as total
  from Ventas as v
       inner join Inventario as i on i.id = v.producto

Considero que con esto, tienes suficiente información para terminar la consulta que devuelva el resultado que buscas.

Un saludo.

jachguate
  • 25,659
  • 7
  • 35
  • 61