SQL Server - Listar campo de acuerdo a condición (en excel utilice función indirecto)

 
Vista:
Imágen de perfil de juan carlos

Listar campo de acuerdo a condición (en excel utilice función indirecto)

Publicado por juan carlos (4 intervenciones) el 27/10/2021 23:15:49
Hola necesito un poco de ayuda quiero obtener el precio del producto de acuerdo al rango de kilos que le corresponda

Cree una funcion para función para determinar rangos de peso para ordenes de venta de productos al mayoreo

ALTER Function [dbo].[Rangopeso](@peso float)
returns Int
as begin
declare @Rango As Int

set @rango = (CASE WHEN @peso = 0 THEN 0
when @peso > 0 And @peso < 45 then 1
when @peso >= 45 And @peso < 100 then 45
when @peso >= 100 And @peso < 300 then 100
when @peso >= 300 And @peso < 500 then 300
when @peso >= 500 And @peso < 1000 then 500
when @peso >= 1000 And @peso < 3000 then 1000
when @peso >= 3000 And @peso < 5000 then 3000
when @peso >= 5000 then 5000
END)
RETURN @rango
END

por otro lado tengo una tabla precios, los títulos de los campos corresponden a los rangos de precios
producto 1 45 100 300 500 1000 3000 5000
manzanas 25 23 20 19 18 17 16.5 16
peras 35 33 22 21 19 19 18.9 18.6
naranjas 10 9.9 9.5 9 8.5 8.5 8.3 8

y mis registros de ventas
Fecha Id_cliente producto kilos_comprados Rango precio
2021-04-15 AABB Peras 1350 1000 19
2021-04-16 AAER Peras 3300 3000 18.9
2021-04-16 AABB Naranjas 85 45 9.9
2021-04-16 AABB Manzanas 6500 5000 18.6

Lo que busco es el precio que le corresponde de acuerdo al rango en la tabla anterior lo determine manualmente
pero no se como hacerlo mediante consulta SQL
Gracias por su apoyo

solo como referencia en excel lo conseguí con la función indirecto para llamar a un campo dependiendo del resultado

select Fecha, Id_cliente, producto, kilos_comprados, dbo.Rangopeso(kilos_comprados), "precio",
from ventas as v
inner join precios as p
on p.producto= v.producto
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