Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sql query с страном видом  [new]
Nicu Griu
Member

Откуда:
Сообщений: 4
помочь мне выполнить такой запрос, результат которого будет, как показано ниже.
У меня есть три таблицы, адреса, люди и отношения между людьми и адреса.
если у человека есть несколько адресов, чтобы не повторять имя человека
структура таблицы:
person
id_person
first_name
last_name
address
id_address
address_name
person_address
id_person_address
id_person
id_address
Я хочу чтобы результат запрос был таким:
|first_name| last_name| address|
|first1            |last1|     address1|
                                 |address2|
                                 |address3|
|first2          |last2|       address2|
                                 |address4|
чтобы не повторять имя много раз если много адресов
21 июл 11, 10:38    [11004725]     Ответить | Цитировать Сообщить модератору
 Re: sql query с страном видом  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Nicu Griu, нумеровать группы, все что >1 менять на пустую строку.
21 июл 11, 10:45    [11004780]     Ответить | Цитировать Сообщить модератору
 Re: sql query с страном видом  [new]
Nicu Griu
Member

Откуда:
Сообщений: 4
kDnZP,Спасибо, но я не знаю, как это сделать
21 июл 11, 11:04    [11004966]     Ответить | Цитировать Сообщить модератору
 Re: sql query с страном видом  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Nicu Griu, RANK() в помощь, либо DENSE_RANK(). Либо внимательно прочитать эту тему.
21 июл 11, 11:08    [11005016]     Ответить | Цитировать Сообщить модератору
 Re: sql query с страном видом  [new]
AmKad
Member

Откуда:
Сообщений: 5310
Nicu Griu,

case when row_number() over (partition by id_person order by address_name) = 1 then first_name end
21 июл 11, 12:37    [11006013]     Ответить | Цитировать Сообщить модератору
 Re: sql query с страном видом  [new]
Nicu Griu
Member

Откуда:
Сообщений: 4
AmKad,

Большое спасибо
25 июл 11, 14:23    [11023089]     Ответить | Цитировать Сообщить модератору
 Re: sql query с страном видом  [new]
Nicu Griu
Member

Откуда:
Сообщений: 4
автор
SELECT
case when row_number() over (partition by dbo.person.id_person order by dbo.address.address_name) = 1 then dbo.person.first_name end AS first_name,
case when row_number() over (partition by dbo.person.id_person order by dbo.address.address_name) = 1 then dbo.person.last_name end AS last_name,
dbo.address.address_name
FROM dbo.person
LEFT JOIN
dbo.person_address ON dbo.person.id_person = dbo.person_address.id_person
LEFT JOIN
dbo.address ON dbo.person_address.id_address = dbo.address.id_address
25 июл 11, 15:32    [11023562]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить