none
Consulta compleja RRS feed

  • Pregunta

  • Buenos días

    Estoy trabajando en un proyecto de recetas químicas donde el objetivo es aprovechar los ingredientes de una receta existente en stock para crear otra. Os pongo un par de capturas de las tablas que he diseñado para que os hagáis una idea.

    En este ejemplo estamos creando la receta 04 y el objetivo es que el software te dijese que puedes aprovechar la receta tres ya que comparten ingredientes. La receta 1 y 2 quedan descartadas porque utilizan el ingrediente 3. Una segunda parte del problema sería que el software te dijese la cantidad de gramos a añadir en la receta aprovechada para adaptarla a la receta a fabricar. Espero haberme explicado correctamente. Si necesitáis más datos por favor comentármelo.

    Saludos y gracias por vuestra ayuda.

    viernes, 21 de septiembre de 2018 10:12

Respuestas

  • La primera cuestión se resuelve creando una función que reciba como parámetro el código de la receta que estás creando y el ingrediente a comprobar. Lo que hará será buscar en la tabla de recetas si existe un registro con ese código de receta e ingrediente devolviendo True o False.

    De esta forma recorrerás los registros de cada receta y para cada ingrediente llamarás a la función. Si cualquiera de los ingredientes no existe en la receta que estás queriendo crear das por no válida la receta y compruebas la siguiente.

    La segunda cuestión no la entiendo. Por un ejemplo.


    Saludos, Javier J

    • Marcado como respuesta Pablo Rubio lunes, 24 de septiembre de 2018 15:21
    viernes, 21 de septiembre de 2018 10:43
  • Hola Javier

    Pensaba que se podría hacer a nivel de SQL con alguna consulta, no querría tener que recorrer toda la base de datos cada vez que tenga que hacer una receta, pero bueno me pongo con la función y os voy contando.

    En cuanto al tema de las cantidades y siguiendo con el ejemplo anterior:

    Supongamos que el software nos ha dicho que utilicemos la receta 3. Los ingredientes de la receta 3 son el 80% del total de nuestra receta, por lo tanto para fabricar 1kg de compuesto el software nos debería indicar que debemos utilizar las siguientes proporciones:

    200 grs de Ingrediente 02

    800 grs de Receta 03 (desperdiciamos 35,69 grs.)

    Creo que sería algo así

    • Marcado como respuesta Pablo Rubio lunes, 24 de septiembre de 2018 15:21
    viernes, 21 de septiembre de 2018 11:47

Todas las respuestas

  • La primera cuestión se resuelve creando una función que reciba como parámetro el código de la receta que estás creando y el ingrediente a comprobar. Lo que hará será buscar en la tabla de recetas si existe un registro con ese código de receta e ingrediente devolviendo True o False.

    De esta forma recorrerás los registros de cada receta y para cada ingrediente llamarás a la función. Si cualquiera de los ingredientes no existe en la receta que estás queriendo crear das por no válida la receta y compruebas la siguiente.

    La segunda cuestión no la entiendo. Por un ejemplo.


    Saludos, Javier J

    • Marcado como respuesta Pablo Rubio lunes, 24 de septiembre de 2018 15:21
    viernes, 21 de septiembre de 2018 10:43
  • Hola Javier

    Pensaba que se podría hacer a nivel de SQL con alguna consulta, no querría tener que recorrer toda la base de datos cada vez que tenga que hacer una receta, pero bueno me pongo con la función y os voy contando.

    En cuanto al tema de las cantidades y siguiendo con el ejemplo anterior:

    Supongamos que el software nos ha dicho que utilicemos la receta 3. Los ingredientes de la receta 3 son el 80% del total de nuestra receta, por lo tanto para fabricar 1kg de compuesto el software nos debería indicar que debemos utilizar las siguientes proporciones:

    200 grs de Ingrediente 02

    800 grs de Receta 03 (desperdiciamos 35,69 grs.)

    Creo que sería algo así

    • Marcado como respuesta Pablo Rubio lunes, 24 de septiembre de 2018 15:21
    viernes, 21 de septiembre de 2018 11:47