|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Здравствуйте!!! MS SQL SERVER 2017 имеется таблица Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Хочу получить результат: ChronFioIdPersonIdDateFamNamMid311995-01-01Моськина (Петрова;Иванова)ТатьянаИвановна522010-01-01Гузеев (Мартынов)ИванМихайлович (Петрович)732000-01-01ДобровПетрЮревич (Юрьевич) мое решение такое... Код: 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.
но оно не дает желаемый результат. Получается так: ChronFioIdPersonIdDateFamNamMid311995-01-01Моськина (Петрова;Иванова)Татьяна (Татьяна;Татьяна)Ивановна (Ивановна; Ивановна)522010-01-01Гузеев (Мартынов)Иван (Иван)Михайлович (Петрович)732000-01-01Добров (Добров)Петр (Петр)Юревич (Юрьевич) Подскажите как построить запрос... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 14:30 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Разучить таки директиву DISTINCT. ЗЫ. Но если ишо и подумать, то все правильно. Как есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 14:42 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
aleks222, DISTINCT .... конкатенировать по полю дата нужно, т.е. в обратной хронологии и встает вопрос в каком месте тыкнуть этот DISTINCT ... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 15:02 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 15:13 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Алексаша aleks222, DISTINCT .... конкатенировать по полю дата нужно, т.е. в обратной хронологии и встает вопрос в каком месте тыкнуть этот DISTINCT ... Твои "Гузеев (Мартынов) Иван Михайлович (Петрович)" бессмысленны, чуть более, чем полностью. Хронология означает перечень всех ФИО. Полностью. А то твой Гузев был михалычем или петровичем? Или тем и тем? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 15:23 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
aleks222, То что вне скобок - текущее, то что в скобках в убывающем порядке. т.е. гузеев был ранее мартынов всю дорогу - иван , отчество текщее михайлович, а ранее было Петрович. как правило возникают ситуации с женщинами Иванова (Петрова, Сидорова) Марья Ивановна. Т.е. текущая Иванова, а ранее была Петровой и сидоровой ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 15:42 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
zby, Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 15:50 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Алексаша aleks222, То что вне скобок - текущее, то что в скобках в убывающем порядке. т.е. гузеев был ранее мартынов всю дорогу - иван , отчество текщее михайлович, а ранее было Петрович. как правило возникают ситуации с женщинами Иванова (Петрова, Сидорова) Марья Ивановна. Т.е. текущая Иванова, а ранее была Петровой и сидоровой Туповаты вы, батенька. "а ранее было Петрович." когда был мартынов или когда уже стал гузеев? Не понимаете тривиального: смена фамилии не синхронна смене отчества. А из вашего бреда невозможно однозначно это установить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 16:43 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
------------ ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 16:43 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
aleks222 А то твой Гузев был михалычем или петровичем? Или тем и тем? Для начальства "Михалыч", для друзей в гараже "Петрович" :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 17:04 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Алексаша, За один проход Код: 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. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2020, 18:35 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
invm, И все это для того, чтобы конкатенировать значения в разных записях. Подобная задача она "нереляционная", т.е. она не решается стандартными операциями реляционной алгебры, а значит её лучше решать уже за пределами БД. При желании можно и гиперболический тангенс средствами БД вычислять, только зачем эот делать, если РБД для этого просто не предназначена. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 01:10 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
fkthat, Да ради Бога, никто не запрещает вам забрать все данные таблицы на клиента и вполне себе императивненько их там лопатить. И плевать, что это в разы затратнее, что по ресурсам, что по времени на разработку и тестирование, не говоря уже об эффективности - зато все догмы будут соблюдены. Не пытались подумать: зачем производители РСУБД включают в свои продукты нереляционные инструменты? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 09:40 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
invm И плевать, что это в разы затратнее, что по ресурсам, что по времени на разработку и тестирование, не говоря уже об эффективности - зато все догмы будут соблюдены. Всё это чистой воды спекуляция, так как мы не знаем ни системы в целом, ни задачи в частности. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 10:26 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
Дмитрий Мух Всё это чистой воды спекуляция, так как мы не знаем ни системы в целом, ни задачи в частности. Мой личный опыт говорит, что они просто по-другому не умеют... ЗЫ: Ничего личного, просто наблюдения. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 12:26 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
invm Вот интересно, почему подобной аргументации, в подавляющем большинстве, придерживаются императивщики? Мой личный опыт говорит, что они просто по-другому не умеют.... Немного времени назад я частенько встречал иную крайность - зачем нам БД, будем хранить в файликах, читать в массивы, таскать их за собой и выбирать по месту. Это включало в себя жуткие попытки реализации многопользовательской работы. Благо не припомню реализацию транзакций. Так что в принципе все возможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.07.2020, 21:19 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
invm fkthat, Да ради Бога, никто не запрещает вам забрать все данные таблицы на клиента и вполне себе императивненько их там лопатить. И плевать, что это в разы затратнее, что по ресурсам, что по времени на разработку и тестирование, не говоря уже об эффективности - зато все догмы будут соблюдены. Не пытались подумать: зачем производители РСУБД включают в свои продукты нереляционные инструменты? Реляционная БД должна решать реляционные задачи. Если вам приходится натягивать на неё другие задачи нереляционные , то значит что у вас спроектированно все через попу. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 08:01 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
fkthat Реляционная БД должна решать реляционные задачи. Если вам приходится натягивать на неё другие задачи нереляционные , то значит что у вас спроектированно все через попу. Можете, на примере задачи ТС и предложенного решения, перечислить преимущества ее реализации вне СУБД? А потом еще и ответить на вопрос - что же делать, если результат будет нужен не только на клиенте но и на сервере БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 10:40 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
fkthat invm fkthat, Да ради Бога, никто не запрещает вам забрать все данные таблицы на клиента и вполне себе императивненько их там лопатить. И плевать, что это в разы затратнее, что по ресурсам, что по времени на разработку и тестирование, не говоря уже об эффективности - зато все догмы будут соблюдены. Не пытались подумать: зачем производители РСУБД включают в свои продукты нереляционные инструменты? Реляционная БД должна решать реляционные задачи. Если вам приходится натягивать на неё другие задачи нереляционные , то значит что у вас спроектированно все через попу. вот, применительно к вопросу ТС, я вижу примерно такую ситуйовину: - через проходную, 20 лет назад, проходит некто Иванова - 15 лет назад, она выходит замуж за Петрова - ещё через 5-ть лет, Петров оказуется "казлом" и она возвращает себе свою красссивую фамилию Иванова - и, буквально вчера, она "полюбила" Сидорова, и теперь "проникает" через проходную как Сидорова учёт, разумеется, ведется каждый день Так вот, твоё "нереляционное" предложение, в чём заключается ? Закачать все данные о проходе за 20-ть лет, и на клиенте, расспарсить ? ... дурня какаито, имхо ... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 10:45 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
court Так вот, твоё "нереляционное" предложение, в чём заключается ? Я бы выбирал человека построчно на клиент. Просто потому, что "Моськина (Петрова;Иванова)" это явно вариант отображения, и это уродливый вариант отображения ИМХО. На клиенте можно гораздо более удобно для пользователя сделать вывод, с порядком и датами изменений, с какой то дополнительной информацией, можно подгружать в скрытое меню и показывать по необходимости. А вот это вот "Моськина (Петрова;Иванова)" это какой то dos-стиль, когда вообще наплевать на пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 20:11 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
court она прикладывает пропуск, у того есть ид, находим в базе пропуск по ид и проверяем действителен ли (все в условиях WHERE) и да мне тоже не понятно, зачем собирать все старые фамилии в одну строчку да и где вообще это может только понадобится? для учетной системы загса?? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 20:25 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
17-77 и да мне тоже не понятно, зачем собирать все старые фамилии в одну строчку да и где вообще это может только понадобится? для учетной системы загса?? Кто это, что за Моськина? А, это же та Моськина, которая у нас 20 лет работала Петровой. Собственно, такая постановка бизнес-задачи, чего тут обсуждать, "нужно" или "не нужно". aleks222 Твои "Гузеев (Мартынов) Иван Михайлович (Петрович)" бессмысленны, чуть более, чем полностью. Хронология означает перечень всех ФИО. Полностью. Пользователю не надо знать, "сколько раз человек был Петровым", и в течении какого периода, ему нужно понять, какого это за персонажа показывает система. Для этого обычно достаточно перечислить все фамилии в скобочках. И что бы компактно, а не списком. А если для какого то одного случая недостаточно - чтож, значит, этот случай система будет отрабатывать плохо, только и всего. (тогда пользователю придётся ткнуть в ФИО, что бы получить список всех ФИО с хронологией) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 23:24 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
alexeyvg Пользователю не надо знать, "сколько раз человек был Петровым", и в течении какого периода, ему нужно понять, какого это за персонажа показывает система Если информация не обладает полнотой и способна привести к ошибкам - ее нельзя показывать пользователю. Аккурат "какого это за персонажа показывает система" по этим спискам определить невозможно. Персонаж определяется ФИО: Сидоров Сидор Сидорович. А не шарадой: "Сидоров, а может быть Иванов" "может быть Иван, а может Сидор" "может быть Иванович, а может Сидорович". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 09:59 |
|
Запрос хронология ФИО
|
|||
---|---|---|---|
#18+
автори да мне тоже не понятно, зачем собирать все старые фамилии в одну строчку да и где вообще это может только понадобится?Смешной вопрос. Н-р обнаружить факт изменения. Сопоставить новую и старую фамилии для девушек, вышедших замуж и т.д. Да и ошибки в написании встречаются нередко даже в офиц. документах. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2020, 11:29 |
|
|
start [/forum/topic.php?fid=46&msg=39983667&tid=1685834]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 160ms |
0 / 0 |