Я пробовал множество разнообразных ранжирующих решений с объединениями и всеми, чтобы соответствовать нуждам, которые я хочу.Сложная задача определения рейтинга TSQL
К сожалению, я не могу найти правильный запрос, чтобы получить желаемый результат.
Я действительно ищу любую помощь, чтобы получить объяснение, которое поможет мне в будущем с такими задачами.
У меня есть следующий КТР таблица содержит значение данных набора:
type model price code
Shoes 1298 700,00 1
Shoes 1298 950,00 6
Shoes 1298 1050,00 4
Shoes 1321 970,00 2
Shoes 1750 1200,00 3
Shoes 1752 1150,00 5
Pants 1121 850,00 2
Pants 1121 850,00 4
Pants 1121 850,00 5
Pants 1232 350,00 8
Pants 1232 350,00 9
Pants 1232 400,00 7
Pants 1232 600,00 1
Pants 1233 600,00 3
Pants 1233 950,00 6
Pants 1233 970,00 12
Pants 1233 980,00 11
Pants 1260 350,00 10
Hats 1276 400,00 1
Hats 1288 400,00 6
Hats 1401 150,00 4
Hats 1408 270,00 5
Hats 1433 270,00 2
Hats 1434 290,00 3
Унифицированных записи нумерации КТРА должна быть сделана следующим образом: сначала первые модели столов (обувь, брюки и Шляпы), затем последние модели, после этого - вторая модель в таблицах, предпоследняя и т. Д. В случае истощения моделей определенного типа, число только оставшихся моделей других типов.
Вот желаемый результат:
Id type model price code
1 Shoes 1298 700.0000 1
2 Pants 1232 600.0000 1
3 Hats 1276 400.0000 1
4 Shoes 1298 950.0000 6
5 Pants 1233 970.0000 12
6 Hats 1288 400.0000 6
7 Shoes 1321 970.0000 2
8 Pants 1121 850.0000 2
9 Hats 1433 270.0000 2
10 Shoes 1752 1150.0000 5
11 Pants 1233 980.0000 11
12 Hats 1408 270.0000 5
13 Shoes 1750 1200.0000 3
14 Pants 1233 600.0000 3
15 Hats 1434 290.0000 3
16 Shoes 1298 1050.0000 4
17 Pants 1260 350.0000 10
18 Hats 1401 150.0000 4
19 Pants 1121 850.0000 4
20 Pants 1232 350.0000 9
21 Pants 1121 850.0000 5
22 Pants 1232 350.0000 8
23 Pants 1233 950.0000 6
24 Pants 1232 400.0000 7
Я обновил требуемый выход (добавлен код столбец), чтобы лучше понять идею сортировки. Это должно быть сделано чередующимся образом с первым кодированным номером (т.е. самым низким кодом) типов, который начинается первым, тогда последние кодированные числа (т.е. самый высокий код) типов идут вторым, затем сначала кодируются, кто остается слева, а затем последний закодированный, кто остается и т. д.
Почему строка (9, Шляпы, 1433, 270,0000) появляется перед (12, Шляпы, 1408, 270,0000) в желаемом выходе? Я понимаю, что это должны быть обувь, головные уборы, брюки, туфли, шляпы, брюки и т. Д., Но как вы заказываете это? Что определяет, что является первой записью для обуви, а какая последняя? – GarethD
Совет. Полезно пометить вопросы базы данных как с помощью соответствующего программного обеспечения (MySQL, Oracle, DB2, ...) и версии, например. 'SQL-сервер-2014'. Различия в синтаксисе и особенностях часто влияют на ответы. – HABO
Я использую MS SQL-Server 2012, поэтому предпочитаю решение TSQL. Тег говорит sql-сервер. –