Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
topdon Member Откуда: Ростов- на- Дону Сообщений: 564 |
Уважаемые коллеги, прошу помощи! У меня большая задача, которую можно свести к простой Есть три таблицы- Countries, Cities, Rivers CountryID Country 1 Россия 2 США 3 Германия 4 Испания 5 Италия 6 Франция CityID CountryID City 1 1 Москва 2 1 Санкт-Петербург 3 1 Екатеринбург 4 1 Новосибирск 5 1 Самара 6 2 Чикаго 7 2 Вашингтон 8 2 Атланта 9 3 Берлин 10 3 Мюнхен 11 3 Гамбург 12 3 Бремен 13 4 Париж 14 4 Лион 15 5 Милан RiverID CountryID River 1 1 Волга 2 1 Дон 3 1 Енисей 4 1 Ангара 5 1 Иртыш 6 1 Лена 7 1 Обь 8 1 Терек 9 2 Миссиссипи 10 2 Миссури 11 3 Рейн 12 3 Эльба 13 3 Рейн 14 3 Дунай 15 4 Рона 16 4 По мне нужно получить таблицу вроде этой Country City River -------------------------------------------- Россия Москва Волга Россия санкт- петербург Дон .. ... ... Сша Чикаго Миссисипи Сша Вашингтон Миссури Сша Атланта null .......... Франция Париж Рона Франция null По То есть для каждой страны строк будет максимум из городов или рек во вторую колонку все города страны в любом порядке, в третью- все реки. Если чего- то меньше, то в соответствующей графе- нули. Может кто знает. Я пробовал cross apply- что- то не выходит. |
7 мар 14, 11:38 [15687566] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
сначала full join рек и городов, после чего результат лефт джойном цеплять к странам |
7 мар 14, 11:42 [15687588] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
пример, чтобы мысль была яснее... |
7 мар 14, 12:00 [15687704] Ответить | Цитировать Сообщить модератору |
topdon Member Откуда: Ростов- на- Дону Сообщений: 564 |
Добрый Э - Эх, Почти понятно, но у меня на самом деле чуть сложней у меня- курсов 2500, книг 6000, методичек- 1000. таблицы Cources -------- CID CName Book ----- BID Bname Metod ------ MID MName и еще 2 индексных CBook ------ CID BID MBOOK -------- CID MID Буду думать. |
7 мар 14, 12:12 [15687800] Ответить | Цитировать Сообщить модератору |
cross join
Guest |
т.е. у вас каждая методичка курса связанна с каждой книгой курса? |
||
7 мар 14, 12:25 [15687918] Ответить | Цитировать Сообщить модератору |
topdon Member Откуда: Ростов- на- Дону Сообщений: 564 |
cross join, нет, книги с методичками не связаны никак. Только с курсами. |
7 мар 14, 12:35 [15688013] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8316 |
Если курс может иметь или методичку или книгу или и то и другое или ничего, то левый джойн курса с методичками и книгами через индексные таблицы. |
7 мар 14, 13:03 [15688233] Ответить | Цитировать Сообщить модератору |
cross join
Guest |
и по какому принципу вы хотите в одной строке разместить книгу и методичку? |
||
7 мар 14, 13:03 [15688234] Ответить | Цитировать Сообщить модератору |
topdon Member Откуда: Ростов- на- Дону Сообщений: 564 |
cross join, Книги с методичками не связаны, но и те и другие связаны с курсами. такова отчетная форма Математика Книга1 Метод1 Книга2 Метод2 книга3 Информатика Книга1 Книга2 Программирование Метод1 Метод2 Психология К1 М1 К2 М2 К3 к4 Там еще экземпляры, но это уже лишнее. |
7 мар 14, 13:45 [15688507] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |