|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
Доброе время суток! Раньше работал только с СУБД MySQL, поэтому, к сожалению, владею VFP на уровне языка SQL. В интернете читал мануалы про операторы, процедуры, функции, циклы и проч, но нужных мне примеров не нашел. Вот ставлю задачу по импортированию данных из одной таблицы в другую одним скриптом для реализации в программе на Delphi при помощи компонента ADO, связанной с FoxPro. Вот что примерно надо: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 00:46 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В данном случае предполагается, что (такая строка есть в таблице table2) - это связь по полю ID. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 10:35 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
ВладимирМ, вся проблема в том, что в импортируемой таблице нет идентификаторов, да и содержит как старые, так и новые документы на одного и того же человека, поэтому сравнение делаю по 4-м столбцам: фам, им, от, дата рожд. и отбор по дате выдачи документа через join. Делать сложный запрос не решаюсь, т.к. не буду уверен в правильности составления. Куда проще разбить все это на простые запросы и циклить их внутри FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 11:56 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
Подобное отношение до сих пор поражает. Неужели так сложно самому чуть-чуть подумать и адаптировать приведенный пример под свои потребности? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Если же вы не можете сформировать набор полей по которым ОДНОЗНАЧНО можно сказать есть такая запись в таблице или нет, то вы никаким способами не сможете решить проблему, поскольку в языке запросов Select-SQL не существует таких понятий как "текущая запись", "предыдущая запись", "последующая запись". А передача данных из одной среды в другую именно запросами Select-SQL и выполняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 12:11 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
Пожалуйста разъясните, при таком синтаксисе UPDATE table1 ; SET Field1 = table2.Field1 ; ,Field2 = table2.field2 ; FROM table2 ; WHERE table2.fam = table1.fam ; AND table2.im = table1.im ; AND table2.otch = table1.otch ; AND table2.bd = table1.bd У меня в таблице1 обновлялись только данные соответствующие Первой записи таблицы2, выкручивался использованием дополнительно FORCE что делал не так, почему без "привеска" не работало? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 20:22 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
ВладимирМ, Запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Хотя я сделал такой запрос: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 22:12 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
table1 выбираете как а и б? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2009, 23:11 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
BMJ, конечно, это самообъединение таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2009, 00:06 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
VadyBMJ, конечно, это самообъединение таблиц. Самообъединение таблиц ? Это что-то новое )) Вы в запросе указали одну и ту же таблицу с разными псевдонимами. Получается, что запрос работает по одной и той же таблицы, сравнивая поле id текущей записи и полем id этой же записи. Результат вполне закономерен. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2009, 01:24 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
thunder2, любые запросы на выборку с использованием двух и более таблиц называют объединением таблиц, а если таблица одна и та же, то это самообъединение. Результат действительно закономерен. Это говорит о том, что полных дубликатов по столбцам fam, im, ot, dr нет. Вопрос в том, почему авторЗапрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
выдает ошибку: FAM is not unique and must be qualified ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2009, 10:56 |
|
Скрипт SELECT-IF-UPDATE-ELSE-INSERT
|
|||
---|---|---|---|
#18+
Такое сообщение возникает, когда в запросе присутствуют два поля с одинаковыми именами, но явно не указывается перед ними названия таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2009, 13:18 |
|
|
start [/forum/topic.php?fid=41&msg=36180014&tid=1586090]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 147ms |
0 / 0 |