|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Добрый день! Помогите с запросом. Имеется две таблицы 1- таблица RnВходящий остаток0011000020003 700 2-я таблица master_rnДатаОборот00117.01.20095000120.01.200920000117.01.200910000219.01.200930000220.01.2009400 Эти две таблицы связаны как Rn с Masret_rn Необходимо получить входящий остаток и оборот за определенное число Например на 17.01.2009 RnВходящий остатокОборот001100150002000037000 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 14:54 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Новичок 2009Добрый день! Помогите с запросом. Что-то типа этого ... Код: plaintext 1. 2. 3.
Код: plaintext 1. 2. 3. 4. 5. 6.
Код: plaintext
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 15:47 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Tohan_ORAНовичок 2009Добрый день! Помогите с запросом. Что-то типа этого ... Код: plaintext 1. 2. 3.
Код: plaintext 1. 2. 3. 4. 5. 6.
Код: plaintext
Код: plaintext 1. 2. 3.
Не все так просто. А попробуйте добавить строчку во вторую таблицу вида: INSERT into c2 values('005',DATE(2009,1,17),50) - т.е. обороты есть, в входящего остатка нет. Вполне частый вариант. С уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 16:21 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Aleksey-K Не все так просто. А попробуйте добавить строчку во вторую таблицу вида: INSERT into c2 values('005',DATE(2009,1,17),50) - т.е. обороты есть, в входящего остатка нет. Вполне частый вариант. С уважением, Алексей. Тогда можно так попробовать Код: plaintext
Код: plaintext 1. 2. 3. 4.
rn exp_2 sum_exp_3001 100 150002 0 0003 700 0005 0 50 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 16:36 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Вместо LEFT JOIN надо FULL JOIN Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 16:59 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Aleksey-KВместо LEFT JOIN надо FULL JOIN Код: plaintext 1. 2. 3. 4.
А если добавить ещё данных ...!? Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 17:06 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
+ Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2009, 17:07 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Tohan_ORA+ Код: plaintext
Согласен, тогда исключим из оборотов записи по дате в подзапросе: Код: plaintext 1. 2. 3.
С уважением, Алексей ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2009, 07:33 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Aleksey-K SELECT NVL(c1.rn, t.master_rn) AS rn, SUM(NVL(c1.ost, 0)) AS Ost, SUM(NVL(t.oborot,0)) oborot ; from c1 full join (SELECT master_rn, dt,oborot FROM c2 WHERE dt<=m.v_dt) t on c1.rn=t.master_rn ; GROUP BY 1 ; ORDER BY 1 Алексей, что выдаст такой запрос по входящему остатку по RN=1 и по RN=6 !? Если через full join,то можно попробовать и что-то вроде этого,но в боевом запросе я бы full join не использовал бы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2009, 10:14 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
to Tohan_ORA to Aleksey-K Спасибо. Разобрался. Не подскажите еще каким образом введенные пользователем параметры модальной формы передать в мой запрос?? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2009, 11:13 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Tohan_ORAAleksey-K SELECT NVL(c1.rn, t.master_rn) AS rn, SUM(NVL(c1.ost, 0)) AS Ost, SUM(NVL(t.oborot,0)) oborot ; from c1 full join (SELECT master_rn, dt,oborot FROM c2 WHERE dt<=m.v_dt) t on c1.rn=t.master_rn ; GROUP BY 1 ; ORDER BY 1 Алексей, что выдаст такой запрос по входящему остатку по RN=1 и по RN=6 !? Если через full join,то можно попробовать и что-то вроде этого,но в боевом запросе я бы full join не использовал бы: + Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: plaintext 1. 2. 3.
А я бы даже так сделал: Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2009, 12:04 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Новичок 2009to Tohan_ORA to Aleksey-K Спасибо. Разобрался. Не подскажите еще каким образом введенные пользователем параметры модальной формы передать в мой запрос?? Им, кажись, ща не до тебя! вопрос оч интересный в плане поиска решения (для торговли особенно). А твои параметры добавь куда нить типа Код: plaintext 1. 2. 3.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2009, 16:53 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
AlikWishin А потом в Запросе Код: plaintext 1.
ну сколько можно наступать на одни и те же грабли?! не надо в запросах использовать конструкции типа _screen.ИмяПеременной (или ЭтаФорма.Проперти), т.к. запрос будет первым делом искать таблицу с именем _screen, а в ней поле с именем ИмяПеременной в запросах делать надо так: Код: plaintext 1. 2.
PS. а вот конструкции типа МояТаблица.МоёПоле использовать можно... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.08.2009, 09:15 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Помогите чайнику: имеется запрос Select zordspM.name, zSubDiv.name from zordspM,zSubDiv.... where .... Ругается на неуникальность поля name (((. Как обойти это в выборе полей? Пробовала обозвать zordspM.name as a_1 например. Эффекту ноль. Как верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2009, 14:32 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
> Автор: Бонни > Ругается на неуникальность поля name (((. Как обойти это в выборе полей? Полный текст запроса покажи Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2009, 14:38 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
БонниПомогите чайнику: имеется запрос Select zordspM.name, zSubDiv.name from zordspM,zSubDiv.... where .... Ругается на неуникальность поля name (((. Как обойти это в выборе полей? Пробовала обозвать zordspM.name as a_1 например. Эффекту ноль. Как верно?А при чем тут выбор полей? Почему решили, что ругань на выбор? После where ни одного name нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2009, 14:46 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Бонни, в SELECT еще и GROUP BY наверное есть? Если так, то попробуйте изменить перед выполнением запроса SET ENGINEBEHAVIOR на 70 (и восстановите после в исходное значение) либо замените в запросе "неуникальные" поля, на которые Fox ругается, на любые агрегатные функции с их участием, например, MIN(...) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2009, 16:56 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Накосячила сама). Закомментила во FROM табличку нужную. Сейчас назрел другой : использую в запросе 9 штук join. Суть такова. В таблице 11 полей, каждое из которых связано со своей табличкой по left join.использую в запросе 9 штук join и всё, дальше ошибка. Я так поняла ,что больше нельзя. Матерится при добавлении ещё 1 Join, что слишком много подзапросов "too many subqueries" - есть чем это лечить? Использую при подключении к БД Microsoft foxpro driver 6.0.Может, что повыше поставить? Запросы пишу из PB 9, но думаю сама среда неважна. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2009, 20:34 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
На всякий случай поясню, т.к. путано написала. Мне нужно 11 join, а максимум ,сколько даёт написать, - 9. Ещё, мне из каждого соединения нужно будет использовать поля из связанной таблицы в Select , поэтому exists -ом заменить нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2009, 22:04 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
БонниНакосячила сама). Закомментила во FROM табличку нужную. Сейчас назрел другой : использую в запросе 9 штук join. Суть такова. В таблице 11 полей, каждое из которых связано со своей табличкой по left join.использую в запросе 9 штук join и всё, дальше ошибка. Я так поняла ,что больше нельзя. Матерится при добавлении ещё 1 Join, что слишком много подзапросов "too many subqueries" - есть чем это лечить? Использую при подключении к БД Microsoft foxpro driver 6.0.Может, что повыше поставить?Угу. VFP OLDB Provider с сайта мелкомягких. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2009, 10:08 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Скачала, поставила. Никаких изменений(((. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2009, 17:46 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Я с Фоксом не работала,можно по-подробнее порядок действий с OLE DB Provider? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2009, 17:54 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
> Автор: Бонни > Я с Фоксом не работала,можно по-подробнее порядок действий с OLE DB Provider? Да разбей ты свои 12 джоинов на несколько отдельных запросов и не парься Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2009, 17:58 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
БонниСкачала, поставила. Никаких изменений(((.От простой установки и не должно ничего измениться. Строку подключения как минимум надо поменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2009, 18:11 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Снова требуется помощь: в запросе необходимо поставить подобное условие: where date(string(zHis.year,'-',zHis.month,'-01')) <={^2008-12-31} Как написать правильно? поле zHis.year - строка вида(2008, 2009) - число поле zHis.month- строка вида (01, 02,...) - число. Пытаюсь привести к виду date("2008-05-01"), но без хэлпа по ф-циям проблематично. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2009, 15:43 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Код: plaintext
Одако будет ошибка, если поля year и month содержат нули или буквы. Функция DATE() не может принимать в качестве параметров нули. Другой вариант конвертации строки в дату - это функция CTOD(), но ее работа зависит от текущей настройки SET DATE. Наконец, нет никакой необходимости конвертировать именно в дату. Можно сформировать строку вида "ГГГГММДД". Такие строки корректно выполняют сравнение на больше/меньше Код: plaintext
Если поля year и month имеют размерность больше 4 и 2 символов соответственно, то следует еще отсечь возможные ведущие и концевые пробелы Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2009, 15:56 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
может так stod(string(zHis.year,zHis.month,'01')) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2009, 16:07 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Конструкция типа str(zHis.year,4)+"-"+str(zHis.month,2)+"-01" выдаёт строку вида: '2009- 7-01' Поэтому вопроса 2: - как заменить в строке пробел на ноль (ф-ция что-то типа sub в sql) - нужна подсказка; - как строку такого вида '2009-07-01' преобразовать к типу даты; ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2009, 17:30 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Вариант : zHis.year + zHis.month + "01" <= "20081231" мне нравится, поэтому собсно - как заменить пробел на ноль? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2009, 17:32 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Бонни, zHis.year + padl(zHis.month,2,"0") + "01" <= "20081231" Если в году 2 цифры, то это отдельная песня, там ещё надо догадываться про столетие. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2009, 17:50 |
|
Помогите с запросом
|
|||
---|---|---|---|
#18+
Не-не-не, в годе как раз 4. С ним порядок. Волнует только месяц : там или 1 или 2 цифры. Требуется только после после конверта в строку месяца заменить образующийся символ пробела на ноль. Какой ф-цией? Должен же быть какой-то аналог Replace ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2009, 09:16 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1586018]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
others: | 341ms |
total: | 518ms |
0 / 0 |