Diese Seite mit anderen teilen ...

Informationen zum Thema:
Forum:
WinDev Forum
Beiträge im Thema:
4
Erster Beitrag:
vor 1 Monat, 3 Wochen
Letzter Beitrag:
vor 1 Monat, 3 Wochen
Beteiligte Autoren:
Yogi Yang, Sascha77, Paulo Oliveira

How to retrive values based on Slabs

Startbeitrag von Yogi Yang am 16.10.2017 12:31

Hello,

I have a table whose structure is:

p_product_id
p_weight
p_rate


This table contains following data:

p_product_id p_weight p_rate
1 0.250 1
1 0.500 4
1 0.750 7
1 0.900 7.5
1 1.000 10
2 0.250 2
2 0.500 3
2 1.150 10.5
3 0.700 6.5
3 0.900 7.5



Now when a user enters Weight I need to find the rate applicable.

So if user enters weight of 0.600 then based on the product selected the rate applicable is that of 0.750 that is 7

What query should I use for retrieving this rate?

TIA

Antworten:

Not tested but try something like this:

select s.p_rate from your_table s
where s.p_product_id=the produtct you need
and s.p_weight = (select min(w.p_weight) from from your_table w
where s.p_product_id=w.p_product_id and
w.p_weight>= your_input weight)

von Paulo Oliveira - am 16.10.2017 13:00
Yogi,

if your logic needs to be the perfect match or take the next higher weight this query should do the trick.

select * from table
where p_weight >= %1
and p_product_id = 'ProductID'
order by p_weight asc
limit 1;


cheers,
Sascha

von Sascha77 - am 16.10.2017 13:01
Sascha,

Quote
Sascha77
if your logic needs to be the perfect match or take the next higher weight this query should do the trick.

select * from table
where p_weight >= %1
and p_product_id = 'ProductID'
order by p_weight asc
limit 1;

That is great. It does the trick for me! And it works like a charm.

Thanks for this simple and workable solution.

Regards,

von Yogi Yang - am 17.10.2017 04:10
Zur Information:
MySnip.de hat keinen Einfluss auf die Inhalte der Beiträge. Bitte kontaktieren Sie den Administrator des Forums bei Problemen oder Löschforderungen über die Kontaktseite.
Falls die Kontaktaufnahme mit dem Administrator des Forums fehlschlägt, kontaktieren Sie uns bitte über die in unserem Impressum angegebenen Daten.