|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Здравствуйте. Взялся работать с базой (всего-лишь неделю назад в выходные изучил SQL). Стоит Firebird 2.5 с Delphi. Используется для статистики. Дело в том, что используется почти две одинаковые таблицы "SPISOK_AMB" и "SPISOK". В первую вносятся все пациенты, а во вторую вносятся только госпитализированы из них. Но так ведь не должно быть, т.е. достаточно одного поля в таблице "Список", которое определяет, что пациент госпитализирован. Пытался объединить данные через "Union", но заметил, что наименование полей разные, например, "FAMILY" и "FAMILY_AMB". Переименовать не дает, выводит: "This operation is not defined for system tables. unsuccessful metadata update. Column NOMIB_AMB from table SPISOK_AMB_COPY is referenced in SPISOK_AMB_COPY_EXC1." Как объединить? С уважением, Rphoenix. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 11:49 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Hello, Rphoenix! You wrote on 19 декабря 2016 г. 11:58:45: Rphoenix> Как объединить?зачем? у тебя в первой таблице и так есть ВСЕ Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 11:59 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, нафига UNION? Здесь либо LEFT, либо INNER JOIN, в зависимости от набора полей таблиц и от того, что ты хочешь, в конечном итоге, получить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:09 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
МимопроходящийHello, Rphoenix! You wrote on 19 декабря 2016 г. 11:58:45: Rphoenix> Как объединить?зачем? у тебя в первой таблице и так есть ВСЕ Нет, во второй указывается случай госпитализации (дополнительные поля). ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:15 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
rdb_dev, я хочу получить одну таблицу без повторений, с данными пациентов (первая таблица) и с историей госпитализации (вторая таблица; если есть). Пробовал "FULL OUTER JOIN", но получается два поля "Family" и "Family_amb" у одного и того-же человека в строке (т.е. повторяются). Попробовать запрос с параметром? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:18 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, проблема заменить * на список нужных полей? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:22 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
rdb_devRphoenix, проблема заменить * на список нужных полей? Код: sql 1. 2. 3. 4. 5. 6.
Так? Проблема в том, что ID не связаны внешними ключами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:28 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Hello, Rphoenix! You wrote on 19 декабря 2016 г. 12:23:40: Rphoenix> Пробовал "FULL OUTER JOIN"видимо утверждение о том, что "на выходных изучил SQL" слегка не соответствует действительности Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:31 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
МимопроходящийHello, Rphoenix! You wrote on 19 декабря 2016 г. 12:23:40: Rphoenix> Пробовал "FULL OUTER JOIN"видимо утверждение о том, что "на выходных изучил SQL" слегка не соответствует действительности Да да, что-то я ступил) конечно "LEFT OUTER JOIN". А как теперь выгрузить скрипт в таблицу? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:37 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Мимопроходящий, ну почему же вполне может соответствовать. Выучить SQL за выходные не возможно. Точнее синтаксис освоить можно, а вот понимать что и когда использовать это время нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:38 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix"на выходных изучил начал изучать SQL" правильней так ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:40 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Проблема в том, что поля по другому названы в другой таблицы. Их все самостоятельно присваивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:48 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, здесь не преподают бесплатно теорию реляционных баз данных. Гугли теорию и формы нормализации. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 12:55 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenixсамостоятельно присваивать? Что делать ???? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:02 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Arioch, в первой таблицы личные данные пациентов. Во второй таблицы личные данные + данные госпитализации. Нужно объединить по личным данным в одну, но наименование полей во второй таблице другое. Код: sql 1. 2. 3. 4. 5. 6.
Нужно, получается, и Код: sql 1.
.... и т.д.? Присваивать каждое поле? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:06 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, подучи ка ты ещё SQL. И почитай про первичные ключи натуральные и искусственные, а так же про нормализацию таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:10 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Симонов Денис, т.е. деление должно быть, чтобы выполнялось условия нормальных форм? Или причем тут они? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:14 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Т.е. должна быть одна таблица с личными данными, а вторая с историей болезни? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:15 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
RphoenixТ.е. должна быть одна таблица с личными данными, а вторая с историей болезни? да ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:18 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, во-первых тут нет присваивания, вообще нет. так что либо ты учишь общепринятый язык, либо мы все учим твой язык. что вероятнее случится, думаю, все понимают во-вторых нет, не один хрен, каким словом что называть если мы не сможем говорить на оном и том же языке - мы не сможем понять тебя, а ты нас в результате и мы будем давать плохие советы, и понимать ты их будешь вообще другим ужасным способом в третьих нет, не из-за одного слова, это слово просто признак, что ты совсем не задумываешься что какие слова значат, и сколько сил уйдет чтобы распознать другие слова-ловушки в твоём языке и расшифровать их - никому не известно в четвёртых - тебе нужно завести уникальный идентификатор черловека, например номер его регистрационной карточки ( натуральный ключ ) или просто число ( искусственный ключ ) и тогда связывать две таблицы можно будет только поля-идентификаторы. spisok.ID = spisok_amb.ID в пятых - начни что-ли с того, чтобы прочитать Шумакова: http://www.ibase.ru/sql/ Ты в таких основах плаваешь, что... все что мы можем делать, это открывать эти книжки и читать их тебе вслух страницу за страницей. Потому что лучше чем они сказали - мы сказать вряд ли сможем. Да и не захотим: если бы мы были хорошими писателями, мы бы уже саим по книжке написали. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:23 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
RphoenixПрисваивать каждое поле? Нет, связь только по ключевым. Какие поля ключевые - спроси у разработчика БД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 13:41 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, эти таблицы между собой ключами не связаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:10 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, беда... Начинай с перепроектирования БД. Небось спёр её у двоешника, который курсач в прошлом году кое-как сдал, или даже не сдал. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:12 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Симонов Денис, это рабочая база больницы. Нашел связь через Delphi: "dm1.pFIBDataSet14.FieldValues['NAME']:=trim(vartostr(dm1.pFIBDataSet35.FieldValues['NAME_AMB']));" и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:19 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, руки оторвать с корнем ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:20 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenixэти таблицы между собой ключами не связаны. Поэтому я и сказал спрашивать у её разработчика. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:21 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, получается, данные не объединить? Только если заново базу переписывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:36 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, Ты в курсе, что NAME вовсе не уникальный атрибут для людей, даже если ты в него ФИО пишешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:39 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, взять IBExpert и исследовать обе таблицы на предмет комбинации полей образующих для данных уникальную последовательность, совпадающую по обеим таблицам. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:39 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
rdb_dev, да, я это делал уже. Единственное, что я предполагал - это номер полиса. Но у большинства он не заполнен. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:43 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, ну и связывай таблицы по номеру полиса. В чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:53 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Написал вот такой запрос: Код: sql 1. 2. 3. 4. 5. 6. 7.
На первый взгляд выводит правильно, но почему-то с повторениями. Но люди несколько раз повторяются. Использовать DISTINCT? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:54 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
rdb_dev, у многих его нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:55 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, если номер полиса не задан и другого поля, однозначно определяющего пациента не существует (к примеру серия/номер паспорта, СНИЛС, картотечный номер и т.п.), то задача не имеет решений, так как по ФИО невозможно однозначно определить пациента. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 14:56 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Rphoenix, что ты хочешь получить своим запросом? Какой смысл тупо вывести две таблицы? Нахрена тебе * ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 15:19 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Шаг 1: Ariochпрочитать Шумакова: http://www.ibase.ru/sql/ Шаг 2: переписать нафиг всю программу и БД Например для начала - ввести в таблицы уникальный искусственный primary key на генераторах и треггерах. После чего потихоньку учить программу его использовать и налаживать между таблицами нормальные foreign key как вариант - делать их нынешних особо выдающихся таблиц - сборные VIEW с измеением на триггерах но.... Это не для слабонервных. В общем, ты - Сизиф. С горы катится большой камень, упущенный скарабеем (да, камеьн именно из этого). Ты должен его подхватить и не дав развалиться затолкать на вершину. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 15:40 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Симонов ДенисНебось спёр её у двоешника или у сынка директора, который всегда будет весь в белом и всегда будет в позе "эти козлы после меня всё поломали" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 15:41 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Arioch, с каких пор сынки директора программы от делать не фига пишут? Но одно я скажу точно делал её студент недоучка ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 15:50 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Симонов Денис, мог папа к делу приставить попытаться или мог пожаловаться типа "эти программисты так много просят", ну а сынок - "сделаем все тип-топ сами, за 10% от того, начто тебя развести хотят, а разницу... эээ... оставим в семье" ну и TTable с "Select * from table1" во все поля поначалу все супер, потом начинаются лёгкие тормоза, потом тяжелые.... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2016, 16:11 |
|
Объединить данные двух таблиц
|
|||
---|---|---|---|
#18+
Вот вы замордовали человека :) Rphoenix, вам, действительно, надо теорию изучить надо. Советы даются людям, знающим основы, но запутавшимся в вариантах решения своей проблемы. Почитайте Хелен Борри или Ковязина - их книжки давно лежат в инете и на торрентах. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2016, 14:11 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561794]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 174ms |
0 / 0 |