|
Вопрос по запросу
|
|||
---|---|---|---|
#18+
Здравствуйте! Есть исходная таблица Код ТТ Общее 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-файле Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
И получается такой результат Код ТТ Общее 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.20.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 . Подскажите, как в запросе это учесть? Есть то, что еще не учел? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 16:07 |
|
Вопрос по запросу
|
|||
---|---|---|---|
#18+
ferzmikk, попробуйте во вложенном запросе добавить MAX([SKU]) и его добавить в IIF. Правда в случае сравнения, например, SKU9 и SKU10 функция вернет SKU9. В вашем примере такой ситуации нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 16:48 |
|
Вопрос по запросу
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )ferzmikk, попробуйте во вложенном запросе добавить MAX([SKU]) и его добавить в IIF. Правда в случае сравнения, например, SKU9 и SKU10 функция вернет SKU9. В вашем примере такой ситуации нет. Скорректировал запрос. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
В результате так как мне надо. Возможно ли было проще написать запрос? Есть еще не учтенные логические нюансы в запросе? Риски? Ограничение или еще особенности (помимо сравнения, например, SKU9 и SKU10 функция вернет SKU9) при использовании Max(Т1.`SKU`)? Учитывая такой момент, что возвраты пустыми быть не могут (то есть null), Общее SKU не может иметь больше 2 SKU . ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2016, 21:17 |
|
|
start [/forum/topic.php?fid=45&msg=39369012&tid=1612873]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 369ms |
total: | 491ms |
0 / 0 |