|
|
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Помогите начинающему в освоении SQL. Как сделать чтобы все было в одном запросе? Т.е. отображались поля p.naim,m.pole7,m.pole12 select p.naim,m.pole7 from plat p, mes_pl m where p.sdog=m.sdog and m.pole4 between "01.02.2007" and "28.02.2007"' select p.naim,m.pole12 from plat p, mes_pl m where p.sdog=m.sdog and m.pole4 between "01.01.2007" and "31.01.2007"' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2007, 15:33 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
1. неясно сформулирована задача. Если просто надо объединить результаты 2 запросов, то через UNION, если надо все вместе, то почему не объединить временные интервалы 2. неплохо бы указывать БД. Например, в Oracle мало того, что не двойные, а одинарные кавычки при задании дат, дык еще могут быть проблемы с преобразованием строки в дату (зависит от установок сессии) - это, конечно, если pole4 имеет тип date ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2007, 15:40 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Да именно, надо все вместе, т.е. чтобы отображались и pole7 и pole12. БД FoxPro, а я ее юзаю с Delphi. База и прога к ней написаны давно и не мной, мне надо сейчас сделать выборку и отчет. Там такое дело: нужно отобразить значение pole7 назовем "оплата в текущем месяце" и pole12 назовем "долг за прошлый месяц". А в pole4 как раз и записаны даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2007, 15:51 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Блин, ну что значит "вместе"? Если так naim pole7 naim pole7 ..... naum pole12 naim pole12 т.е. сначала все строки с pole7 за тек. месяц, а потом строки с pole12 за предыдущий, то 2 запроса объединяются по UNION Если надо так naim pole7 pole12 т.е. pole7 и pole12 в одной строке, то можно так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 2. Если может быть ситуация, когда строка за тек. месяц есть, а за предыдущий нет или наоборот - читай про OUTER JOIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2007, 16:10 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Спасибо. Надо именно тот случай для которого вы написали код. Но при попытке реализовать в Delphi выдается ошибка Invalid keyword Token select Line 4. Не нравиться в четвертой строке select. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2007, 16:52 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Надеюсь, синтаксические ошибки, которые вкрались при copy + paste исправил? :) Например, FROM plat p, mes_pl m, -- не нужна вторая запятая "01.02.2007" and "28.02.2007"' -- лишний последний апостроф Вообще, если работаешь с базой, запрос лучше отладить на "родном" инструменте самой базы (например, для Oracle - sql*plus), а затем уже запихивать в программу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2007, 17:02 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
2Автор Делай всё в один запрос - условия на дату указывай через OR, выбор нужного столбца в SELECT-листе делай посредством CASE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2007, 06:24 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Бабичев Сергей2Автор Делай всё в один запрос - условия на дату указывай через OR, выбор нужного столбца в SELECT-листе делай посредством CASE. Ну или если на примере проиллюстрировать, то должно быть что-то вроде такого: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2007, 06:31 |
|
||
|
Помогите с объединением запроса.
|
|||
|---|---|---|---|
|
#18+
Спасибо tru55, Бабичев Сергей. То tru55 да нет все проверил - все правильно. Не хочет его Delphi выполнять. То Бабичев Сергей - Тоже Delphi ругается на 3-ю строчку оператор when. Может это из-за того, что Local SQL для Delphi не знает про CASE в отличии от Oracle? Выбор операторов для Local SQL весьма скромен http://www.soft32.ru/delphi.shtml?topic=db&title=local_sql Может еще можно как-то выбрать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2007, 09:53 |
|
||
|
|

start [/forum/topic.php?fid=56&msg=34356419&tid=2016232]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 204ms |
| total: | 383ms |

| 0 / 0 |
