none
Formula select RRS feed

  • Pregunta

  • Buenas tardes a todos,

    tengo un gran problema en esta fórmula:

    La fórmula vendría a hacer por ejemplo:

    Cantidad (10) * Unidad de medida (6) = 60
    Cantidad (5) * Unidad de medida (10*6) = 300

    Entonces la suma de los resultados sería 360, como se muestra en ese excel, como podría hacer ese select si tengo estos datos:

    Espero una pronta respuesta, 

    saludos

    jueves, 11 de julio de 2013 18:02

Respuestas

  • Prueba así:

    Select d.id, d.PedidoId, d.Cantidad, d.UmedidaId, d.ArticuloId
    , d.Memo, d.OrdenId, d.Descuento, d.CostoParcial, d.CantDespachado
    , d.PrecioU, d.CostoFinal
    , d.CantDespachado*(SELECT MAX(e.cantidad) as can FROM equivalencia e WHERE d.UmedidaId=e.UnidadId  ) as TotalUnidades 
    from DetallesDePedido d 

    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    • Marcado como respuesta Josue P. Corzo jueves, 11 de julio de 2013 18:49
    jueves, 11 de julio de 2013 18:45

Todas las respuestas

  • Hola:

    Entiendo lo que quieres obtener a partir del EXCEL, lo que no entiendo es la imagen que pones con los datos... cual sería el nombre de las columnas que se utilizarían para realizar la operación ?... solo Cantidad y UmedidaID, o cual es ? Por lo que puedo apreciar UmedidaID es una llave foranea a otra tabla...

    Creo que hace falta proporcionar un poco más de información, con respecto a los datos que nos muestras, cual sería el resultado final esperado ?


    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    jueves, 11 de julio de 2013 18:15
  • Select d.id, d.PedidoId, d.Cantidad, d.UmedidaId, d.ArticuloId, d.Memo, d.OrdenId, d.Descuento, d.CostoParcial, d.CantDespachado, d.PrecioU, d.CostoFinal, d.CantDespachado*e.Cantidad as TotalUnidades 
    from DetallesDePedido d left join Equivalencia e on d.UmedidaId=e.UnidadId 

    Esto te puede servir, aunque me queda la duda de porque en las consultas de Equivalencia usas Max, pero si Equivalencia UnidadId es llave primaria, esto te deberia funcionar.

    Cordial saludo,


    Mauricio Atanache G. - MCP - MCC
    Bogotá - Colombia
    "Bienaventurados los Pesimistas. Por que hacen BACKUPS."

    jueves, 11 de julio de 2013 18:19
  • Pero allí muestro todos los datos necesarios,

    Vamos de nuevo,

    El campo CantDespachado de la tabla DetallesDePedido muestra 2 datos, los cuáles son los siguientes:

    10 y 5, si te das cuenta el excel también tiene estos datos.

    Y los otros 2 select que he hecho más abajo, trae la cantidad equivalente a esas unidades de medida que es 6 y 60, hago un max porque cada unidad de medida puede tener varios equivalentes, y solo necesito el máximo valor de la tabla equivalencia:

    Si te das cuenta la máxima cantidad para el 1er select es 60 y la maxima cantidad del 2do select es 6, y estos datos también se muestran en el excel:

    caja x (6 und) = 6

    caja x 10 pq x (6 und) = 60

    Con estos datos es suficiente creo yo para hacer la fórmula según el excel 

    Saludos

    jueves, 11 de julio de 2013 18:25
  • Hola Mauricio, 

    Así ya lo he intentado pero obviamente a tu respuesta, uso el max porque necesito los maximos valores equivalentes de esa unidad de medida, si ejecuto tu sentencia me saldrán 3 filas, cuando obviamente solo necesito 2 según sea el caso

    Saludos y gracias!

    jueves, 11 de julio de 2013 18:33
  • Prueba así:

    Select d.id, d.PedidoId, d.Cantidad, d.UmedidaId, d.ArticuloId
    , d.Memo, d.OrdenId, d.Descuento, d.CostoParcial, d.CantDespachado
    , d.PrecioU, d.CostoFinal
    , d.CantDespachado*(SELECT MAX(e.cantidad) as can FROM equivalencia e WHERE d.UmedidaId=e.UnidadId  ) as TotalUnidades 
    from DetallesDePedido d 

    Sergio Sánchez Arias
    Oaxaca,México
    AYÚDANOS A AYUDARTE

    • Marcado como respuesta Josue P. Corzo jueves, 11 de julio de 2013 18:49
    jueves, 11 de julio de 2013 18:45
  • Muchas gracias, eso me ha funcionado perfecto!

    Gracias a los 2 de nuevo

    Saludos

    jueves, 11 de julio de 2013 18:51