2015-04-08 2 views
0

Я использую MySQL У меня есть заказ таблицу:SQL, чтобы найти скидки на уровне позиции

Order | Items | Discount 

+++++++++++++++++ 

A  | 04 | 10 

и Элементы таблицы:

Order | Items | Discount 

+++++++++++++++++++ 

A | 02 | 

A | 01 | 

A | 01 | 

Мне нужно найти скидку за уровень предмета. который будет

2/4 * 10 = 5 for 1st item 
1/4 * 10 = 2.5 for 2nd item 
1/4 * 10 = 2.5 for 3rd item 

нужно вычислить и сохранить скидки на столе предметов.

+1

Почему ваша таблица заказов выглядит точно так же, как ваша таблица товаров? Это намеренно? –

+0

нет, его не предназначено. Я получаю эти столбцы из таблицы Orders and Items и хотел бы выполнить эту логику. Orders.order = Items.order связаны. – Krishna

+0

Итак, ваш результирующий набор состоит из столбца «Порядок», столбца «Элементы» и столбца «Скидка»? –

ответ

0

Итак, на основе ваших комментариев, вы ищете что-то вроде:

UPDATE Items SET Discount = (SELECT ((I.Items/O.Items) * O.Discount) FROM 
    Order O JOIN Items I ON O.Order = Items.Order WHERE O.Order = 'A') 
    WHERE Items.Order = 'A'; 
+0

Спасибо. Я попробовал это. Он работает для продукта «A». Но когда у меня есть несколько продуктов, мне нужно снова запустить несколько строк. – Krishna

0

В отсутствие атрибута (или методологии) для определения того, что упорядочение, это невозможно применить преобразование, которое использует порядок в качестве параметра и получает согласованные результаты.

Смежные вопросы