Пятница, 16 Декабря 2016 г. 16:07
+ в цитатник
Здравствуйте!
Есть исходная таблица
Код ТТ | Общее SKU | SKU | Кол SKU в Общем SKU | Процент возврата | ТТ569 | SKU1/SKU2 | SKU1 | 2 | 0.3 | ТТ569 | SKU1/SKU2 | SKU2 | 2 | 0.2 | ТТ569 | SKU3/SKU4 | SKU3 | 2 | 0 | ТТ569 | SKU3/SKU4 | SKU4 | 2 | 0.23 | ТТ569 | SKU5 | SKU5 | 1 | 0.2 | ТТ569 | SKU6/SKU7 | SKU6 | 2 | 0 | ТТ569 | SKU6/SKU7 | SKU7 | 2 | 0 | ТТ569 | SKU10/SK11 | SKU10 | 2 | 0.42 | ТТ569 | SKU10/SK11 | SKU11 | 2 | 0.42 |
|
Тут логика такая, что у
Общего SKU может быть один или больше
SKU.
Нужен такой результат
Код ТТ | Общее SKU | SKU | Кол SKU в Общем SKU | Процент возврата | Результат | ТТ569 | SKU1/SKU2 | SKU1 | 2 | 0.3 | | ТТ569 | SKU1/SKU2 | SKU2 | 2 | 0.2 | Да | ТТ569 | SKU3/SKU4 | SKU3 | 2 | 0 | Да | ТТ569 | SKU3/SKU4 | SKU4 | 2 | 0.23 | | ТТ569 | SKU5 | SKU5 | 1 | 0.2 | | ТТ569 | SKU6/SKU7 | SKU6 | 2 | 0 | | ТТ569 | SKU6/SKU7 | SKU7 | 2 | 0 | Да | ТТ569 | SKU10/SK11 | SKU10 | 2 | 0.42 | | ТТ569 | SKU10/SK11 | SKU11 | 2 | 0.42 | Да |
|
То есть для каждого
общего SKU, где количество
SKU в
Общем SKU больше 1, нужно в поле "Результат" отметить "Да" в те
SKU c наименьшим процентом возврата.
Для решения такой задачи написал такой запрос в Excel-файле
+ |
SELECT
Т1.`Код ТТ`,
Т1.`Общее SKU`,
Т1.`SKU`,
Т1.`Кол SKU в Общем SKU`,
Т1.`Процент возврата`,
Т2.`Минимальный процент возврата`,
IIF (Т1.`Кол SKU в Общем SKU` > 1 AND Т1.`Процент возврата` = Т2.`Минимальный процент возврата` , 'Да', ) AS `Результат`
FROM
`Исходные данные$` AS Т1
LEFT JOIN
(SELECT
Тв1.`Код ТТ`,
Тв1.`Общее SKU`,
MIN(Тв1.`Процент возврата`) AS `Минимальный процент возврата`
FROM
`Исходные данные$` AS Тв1
GROUP BY
Тв1.`Код ТТ`,
Тв1.`Общее SKU`) AS Т2
ON
Т1.`Код ТТ` = Т2.`Код ТТ`
AND
Т1.`Общее SKU` = Т2.`Общее SKU`
|
И получается такой результат
Код ТТ | Общее SKU | SKU | Кол SKU в Общем SKU | Процент возврата | Минимальный процент возврата | Результат | ТТ569 | SKU1/SKU2 | SKU1 | 2 | 0.3 | 0.3 | | ТТ569 | SKU1/SKU2 | SKU2 | 2 | 0.2 | 0.2 | Да | ТТ569 | SKU3/SKU4 | SKU3 | 2 | 0 | 0 | Да | ТТ569 | SKU3/SKU4 | SKU4 | 2 | 0.23 | 0.23 | | ТТ569 | SKU5 | SKU5 | 1 | 0.2 | 0.2 | | ТТ569 | SKU6/SKU7 | SKU6 | 2 | 0 | 0 | Да | ТТ569 | SKU6/SKU7 | SKU7 | 2 | 0 | 0 | Да | ТТ569 | SKU10/SK11 | SKU10 | 2 | 0.42 | 0.42 | Да | ТТ569 | SKU10/SK11 | SKU11 | 2 | 0.42 | 0.42 | Да |
|
Но тут не учитывается один фактор: если в одном
общем SKU, например, "SKU10/SKU11" проценты возврата одинаковые. И в результате ставятся лишние "Да".
Если одинаковые, то в поле "Результат" указывает "Да" в одной любой внутри
Общего SKU. Можно так - кроме первой строки внутри
Общего SKU.
Подскажите, как в запросе это учесть? Есть то, что еще не учел?
http://www.sql.ru/forum/1243008/vopros-po-zaprosu
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-