Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
DNShark Member Откуда: Сообщений: 237 |
У меня есть запрос двух связных таблиц. Который выдает результат что-то в виде ФИО Телефон Петров - 0971324215 Петов -0662534543 Петров -0994252353 Иванов - 09721243422 Иванов - 06621277422 Иванов - 09321663422 и т.д. А можно как-то в запросе сделать нечто, чтобы выводило при повторении имени пустую строку? Что-то вроде ФИО Телефон Петров - 0971324215 '' -0662534543 '' -0994252353 Иванов - 09721243422 '' - 06621277422 '' - 09321663422 есть идеи ? |
22 июл 13, 16:23 [14600011] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
DNShark, CASE +ROW_NUMBER()OVER() |
22 июл 13, 16:25 [14600025] Ответить | Цитировать Сообщить модератору |
gang Member Откуда: Сообщений: 1394 |
DNShark, Как вариант еще можно поле в "телефон" склеить несколько номеров. |
22 июл 13, 16:34 [14600066] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
Склеить вряд ли получиться. Там кроме телефона еще 7 полей. Плюс Доп информация. Поэтому клеить придется многовато. С Over пробую, но пока не получается ( |
22 июл 13, 16:48 [14600130] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
Если хотите внятных ответов, внятно оформите тему: https://www.sql.ru/forum/127456/rekomendacii-po-oformleniu-soobshheniy-v-forume |
||
22 июл 13, 16:59 [14600193] Ответить | Цитировать Сообщить модератору |
Добрый Э - Эх
Guest |
DNShark, На MS SQL Server 2012 помимо row_number-а можно ещё LEAD / LAG использовать в этих целях. |
23 июл 13, 04:22 [14601930] Ответить | Цитировать Сообщить модератору |
=)8)
Guest |
DNShark, Выгружать в Excel «как есть», а уже в нем включать условное форматирование, вроде этого: «если значение равно значению из предыдущей строки этого же столбца, то отображать его белым по белому» |
23 июл 13, 10:06 [14602451] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
Всем большое спасибо |
23 июл 13, 11:40 [14603003] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
Получилось что-то типа case Row_Number() over (Partition by [ФИО] order by [ФИО] ) when 1 then [Responsible_id] else '' end |
23 июл 13, 12:06 [14603224] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
|
||
23 июл 13, 12:14 [14603288] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
эх, вернул тестировщик, сказали что в 2000 ms-sql не работает( |
6 авг 13, 17:47 [14671412] Ответить | Цитировать Сообщить модератору |
Minamoto Member Откуда: Москва Сообщений: 1162 |
DNShark, тогда, думаю, вам стоит заглянуть сюда: https://www.sql.ru/faq/faq_topic.aspx?fid=126 |
6 авг 13, 18:14 [14671600] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
В общем получилась вот такая фня...
в ResponsibleName_WithoutRepeat получилось то что нужно |
|
6 авг 13, 18:29 [14671673] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2396 |
DNShark, результирующий запрос без oder by ? |
7 авг 13, 11:36 [14674616] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
Есть там ордер by, просто я ж во временную таблицу вставляю отсортированные данные по ForGroupSort, а потом просто отображаю их меняя значения имени с 1 на пустое. |
7 авг 13, 11:42 [14674678] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
хотя почему-то if object_id('#ResponsiblesTemp','U') is not NULL drop table #ResponsiblesTemp; не работает и это тоже if exists (select * from sys.tables where name = '#ResponsiblesTemp') '; drop table #ResponsiblesTemp не работает в итоге я еще заменил #ResponsiblesTemp на ResponsiblesTemp , хотя странно но это работает if exists (select * from sys.tables where name = 'ResponsiblesTemp') '; drop table ResponsiblesTemp |
7 авг 13, 11:46 [14674740] Ответить | Цитировать Сообщить модератору |
Гость333 Member Откуда: Сообщений: 3683 |
Потому что надо так: if object_id('tempdb..#ResponsiblesTemp','U') is not NULL drop table #ResponsiblesTemp;
Срочно меняйте обратно, пока никто не увидел. |
||||
7 авг 13, 11:53 [14674825] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
Спасибо большое) |
7 авг 13, 12:21 [14675037] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
а if object_id('tempdb..#ResponsiblesTemp','U') is not NULL drop table #ResponsiblesTemp; в Sql 2000 работает? |
7 авг 13, 13:33 [14675555] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
|
||
7 авг 13, 13:45 [14675634] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
Не могу вспомнить, как там с типом объекта. Но, кажется мне, что прокатит. |
||||
7 авг 13, 13:47 [14675646] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Это параметер был. Просто не был документированным |
||
7 авг 13, 13:48 [14675658] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
Ко мне возвращается память! ![]() |
||||
7 авг 13, 13:52 [14675680] Ответить | Цитировать Сообщить модератору |
DNShark Member Откуда: Сообщений: 237 |
Забавно в Delphi if exists (select * from tempdb.dbo.sysobjects where name=''#ResponsiblesTemp'' ) ';; DataBase.StringList.Add(' drop table #ResponsiblesTemp; проходит, а в managment studio нет там что-то похожее на if exists (select * from tempdb.dbo.sysobjects where name Like '%#ResponsiblesTemp%' ) писать надо, или я чего-то не знаю... |
7 авг 13, 13:56 [14675708] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
И всё станет ясно. |
||
7 авг 13, 14:00 [14675729] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |