Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с запросом.... / 11 сообщений из 11, страница 1 из 1
17.10.2006, 17:42
    #34061216
LOTOS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
Есть запрос:

select '<@p_DataBase>', ch.client_id, ch.operation_group_id, ch.operation_type_id, ch.operation_kind_id,
ok.balance_kind_id, ch.summa, SUM(mcd.credit), mtrd.nds, SUM(mcd.nds) as nds, ch.summa_ka, ch.nds_ka
from CHARGE_HISTORY ch LEFT JOIN mtr_cred_details_s mcd ON ch.charge_id = mcd.charge_id
LEFT JOIN mtr_details mtrd ON ch.charge_id = mtrd.charge_id, operation_type ok
where ch.operation_type_id = ok.code
and message_date between '<@p_startdate>' and '<@p_finishdate>'
group by 2,3,4,5,6,7,11,12

я сумирую суммы в полях mcd.credit и mcd.nds. В общем все работает замечательно. Но теперь нужно еще суммировать по полю mtrd.nds. вот тут и появилась проблема. В общем по этому полю сумма получается в Н-раз больше чем нада... Вопрос: можно ли как то суммировать еще и по этому полю, или писать процедуру...
Процедуру то написать не проблема... интересно решение
...
Рейтинг: 0 / 0
18.10.2006, 11:58
    #34062919
LOTOS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
Всем спасибо за ответы :). Пишу процидурку
...
Рейтинг: 0 / 0
18.10.2006, 12:57
    #34063241
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
Хочешь ответ?

Вопрос: можно ли как то суммировать еще и по этому полю,
Ответ: Можно.

Если вопрос: Почему умножается?
Ответ: потому что выбираются некоторые строки из mtrd по несколько раз.

Я думаю, никто не смог понять вопроса, поэтому ответить в принципе невозможно.
...
Рейтинг: 0 / 0
18.10.2006, 13:59
    #34063468
Valentyn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
За пояснение сути проблемы и за названия полей в таблицах - категорический низачОт.
Чисто интуитивно можно догадаться какие именно проблемы возникли в запросе.
Попробуй написать так:

select '<@p_DataBase>', client_id, operation_group_id, operation_type_id, operation_kind_id
, balance_kind_id, summa, ch.summa_ka, ch.nds_ka
, sum(mtrd_nds) as mtrd_nds, sum(credit) as credit, sum(nds) as nds
from table(multiset(
select ch.client_id, ch.operation_group_id, ch.operation_type_id, ch.operation_kind_id
, ok.balance_kind_id, ch.summa, ch.summa_ka, ch.nds_ka, mtrd.nds as mtrd_nds
, SUM(mcd.credit) as credit, SUM(mcd.nds) as nds
from CHARGE_HISTORY ch
left join mtr_cred_details_s mcd ON ch.charge_id = mcd.charge_id
left join mtr_details mtrd ON ch.charge_id = mtrd.charge_id, operation_type ok
where ch.operation_type_id = ok.code and message_date between '<@p_startdate>' and '<@p_finishdate>'
group by 1,2,3,4,5,6,7,8,9)) s
group by 2,3,4,5,6,7,8,9

Если датасет в подзапросе может возвращать большое кол-во строк - лучше использовать временные таблицы.
...
Рейтинг: 0 / 0
19.10.2006, 10:31
    #34065658
LOTOS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
Ну не знаю.... может и не зачет :) тоже самое отправил знакомому... все понял, варианты предложил.... может просто Журавлеву влом было посидеть и почитать... Правильно сказано "ИНОГДА ЛУЧШЕ ПРОМОЛЧАТЬ".... как раз твой случай. Да и расписываться за всех... :))
Кто захоче, тот поймет...
Валентину спасибо.... попробую
...
Рейтинг: 0 / 0
19.10.2006, 10:49
    #34065720
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
LOTOSНу не знаю.... может и не зачет :) тоже самое отправил знакомому... все понял, варианты предложил.... может просто Журавлеву влом было посидеть и почитать... Правильно сказано "ИНОГДА ЛУЧШЕ ПРОМОЛЧАТЬ".... как раз твой случай. Да и расписываться за всех... :))
Кто захоче, тот поймет...
Валентину спасибо.... попробую
Дада я очень ленивый мне стыдно, простите что не помог и за всех постараюсь больше не отвечать.
...
Рейтинг: 0 / 0
19.10.2006, 12:55
    #34066278
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
LOTOSНу не знаю.... может и не зачет :) тоже самое отправил знакомому... все понял, варианты предложил.... может просто Журавлеву влом было посидеть и почитать... Правильно сказано "ИНОГДА ЛУЧШЕ ПРОМОЛЧАТЬ".... как раз твой случай. Да и расписываться за всех... :))
Кто захоче, тот поймет...
Валентину спасибо.... попробую
У знакомого, возможно, много времени и дружеские чувства к тебе.
Но мне тоже не захотелось думать над твоим вопросом, т.к. ты не удосужился прочитать прикрепленный топик "Как задавать вопросы", не дал пример, который можно повторить другим, ясно ничего не объяснил...
Журавлев ведь сначала промолчал и попробовал намекнуть, что ты неправ, только после того, как ты съехидничал "спасибо за ответы :)".
А нужно было задуматься - раз не отвечают, то причин может быть множество:
- не успели (почти никто не сидит все время в форуме, а заходит иногда раз в неделю). И если тебе горит, то это не значит, что все должны все бросить и спешить на помощь;
- просто не понятен вопрос и ломать голову и телепатировать или задавать множество вопросов, на которые ты сам должен быть ответить, им некогда;
- "здесь никто никому ничего не должен" и укорять их за это незачем;
- спасибо людям, а Журавлеву особенно, за их желание отвечать многим и многим, всегда отдавать значительно больше чем брать, за терпение отвечать по много раз на одни и те же вопросы или искать в форуме вместо вопрошающего.
...
Рейтинг: 0 / 0
19.10.2006, 13:04
    #34066325
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
vasilisА нужно было задуматься - раз не отвечают, то причин может быть множество...+1
Лучше и не скажешь, разве что только напишешь: Рекомендации по оформлению сообщений в форуме
...
Рейтинг: 0 / 0
19.10.2006, 13:05
    #34066334
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
Щукина Анна vasilisА нужно было задуматься - раз не отвечают, то причин может быть множество...+1
Лучше и не скажешь, разве что только напишешь: Рекомендации по оформлению сообщений в форуме Хоть оно и не по данной ветке форума, но суть отражает - лучше некуда
...
Рейтинг: 0 / 0
19.10.2006, 13:25
    #34066431
LOTOS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
vasilis
У знакомого, возможно, много времени и дружеские чувства к тебе.
Но мне тоже не захотелось думать над твоим вопросом, т.к. ты не удосужился прочитать прикрепленный топик "Как задавать вопросы", не дал пример, который можно повторить другим, ясно ничего не объяснил...
Журавлев ведь сначала промолчал и попробовал намекнуть, что ты неправ, только после того, как ты съехидничал "спасибо за ответы :)".
А нужно было задуматься - раз не отвечают, то причин может быть множество:
- не успели (почти никто не сидит все время в форуме, а заходит иногда раз в неделю). И если тебе горит, то это не значит, что все должны все бросить и спешить на помощь;
- просто не понятен вопрос и ломать голову и телепатировать или задавать множество вопросов, на которые ты сам должен быть ответить, им некогда;
- "здесь никто никому ничего не должен" и укорять их за это незачем;
- спасибо людям, а Журавлеву особенно, за их желание отвечать многим и многим, всегда отдавать значительно больше чем брать, за терпение отвечать по много раз на одни и те же вопросы или искать в форуме вместо вопрошающего.

да, так можно тему развивать до бесконечности... Я не сижу постоянно в форумах, не знал про топик "Как задавать вопросы"... знаю, что незнание закона не освобождает от ответственности... И я своей фразой "спасибо за ответы :)" хотел сказать, что времени у меня ждать больше нет... и я пишу процедуру... я понимаю, что каждый судит по себе. Но я то что могу поделать?
Ну может и не корректно описал проблему... согласен... виноват.
В следующий раз обязательно прочитаю и исправлюсь.
А ответ Журавлева похож на хамство... из ответа видно, что он все воспринял на свой счет... Приветствуеш такое поведение? Да ради бога. :)
...
Рейтинг: 0 / 0
19.10.2006, 17:12
    #34067476
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом....
LOTOSНу может и не корректно описал проблему... согласен... виноват.
В следующий раз обязательно прочитаю и исправлюсь.
А ответ Журавлева похож на хамство... из ответа видно, что он все воспринял на свой счет... Приветствуеш такое поведение? Да ради бога. :)
Нет, хамство я не приветствую в любом виде.
Кстати, я не заметил хамства ни в первом ни во втором его ответах. Может, как ты правильно заметил "каждый судит по себе" ? Хотя все, конечно, относительно. Тут, на некоторых форумах SQL.RU, почти нормальным считается иногда такой тон и поведение (с матами, "шепелявыми", религиозными и националистическими заездами, что просто возмущает до глубины души. Очень надеюсь, что наш форум так и останется чисто техническим, умным, доброжелательным и спокойным местом общения любителей Информикс.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Помогите с запросом.... / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]