|
|
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
Всем привет Возникла небольшая трудность, хотелось бы её решить с вашей помощью Есть запрос Код: plaintext 1. 2. 3. 4. 5. Данный запрос работает, однако если соответствющей записи в таблице T1 (curTax) нет, то по логике T1.all_all должно быть равно нулю и следовательно curTaxWorkPeriod.all_p2 должно присваиваться значение curTaxWorkPeriod.all_all-0, а получается так, что curTaxWorkPeriod.all_p2, в этом случае, всегда равна нулю, вне зависимости от суммы curTaxWorkPeriod.all_all. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 09:54 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
А если так (не проверял): Код: plaintext 1. 2. 3. 4. 5. P.S. Еще очень важно иметь везде пробел перед ";" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 10:24 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
Вы неверно понимаете работу написаного запроса В вашем случае проапдейтятся только те записи для которых соблюдено условие Where, остальные остануться нетронутыми. если хотите получить апдейт по всем записям, используйте left join ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 10:27 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
-=AlexiS=- Вы неверно понимаете работу написаного запроса В вашем случае проапдейтятся только те записи для которых соблюдено условие Where, остальные остануться нетронутыми. если хотите получить апдейт по всем записям, используйте left join Правильно я понимаю, я вопос может не в совсем правильной форме составил. Но суть вы все-равно ведь улавили. А на счёт left join объяснить на пальцах для этого примера, а то у меня конец рабочего дня и я не совсем понимаю как в данном случае этот left join приделать 2 Sergey Ch Пробовал пока не дотумкал до причин, указанных -=AlexiS=- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 10:38 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
Чуть изменил и получилось чего хотел, но хотелось бы более элегантно и одним запросом, может кто знает как это можно сделать (если можно) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 10:53 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
Пардон , сгоряча про left написал, нельзя там лефтов в условиях нужно делать через вложеный запрос примерно так Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 11:03 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
во блин скобку в подзапросе забыл Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 11:05 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
2-=AlexiS=- с одним вложенным запросом нормально отрабатывает и такой вариант я уже пробывал, а вот, допустим введем еще одни минус где надо будет выполнять подзапрос и Fox пожалуется, что слишком сложно для него ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 11:21 |
|
||
|
Помогите с UPDATE FROM
|
|||
|---|---|---|---|
|
#18+
Ну тогда несколько вариантов -1- *** Получить курсор , в котором будут все необходимые поля для "минусов". Ясно дело что получить этот курсор нужно будет с помощью left jion. И апдейтится уже из него. ну типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. -2- *** Разбить все на 2 апдейта - 1 - такой как указан в твоем первом посте. а второй Код: plaintext 1. 2. -3- *** Пройтись по таблице curTaxWorkPeriod сканом с поиском данных в связаных таблицах по Locate ну и с соответствующим replace/update *** По всякому это лучше чем в таблицу добавлять/удалять Хотя незная точной постановки тяжело что-то советовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2006, 11:50 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33866145&tid=1591175]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
6ms |
get forum data: |
3ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 194ms |
| total: | 300ms |

| 0 / 0 |
