30.09.2010, 22:04 | #1 |
Участник
|
Подскажите опять по RS
Есть 2 представления
new_dogovor new_ulsugi хочется выполнить вот такой запрос: X++: SELECT FilteredNew_dogovor.new_name, FilteredNew_uslugi.new_dogovor_usluginame, FilteredNew_dogovor.new_dogovor_statusname, SUM(FilteredNew_uslugi.new_summa) AS Expr1 FROM FilteredNew_dogovor INNER JOIN FilteredNew_uslugi ON FilteredNew_dogovor.new_name = FilteredNew_uslugi.new_dogovor_usluginame GROUP BY FilteredNew_dogovor.new_dogovor_statusname Понимаю, что делать суммирование по одной таблице и группировку по другой неверно, но как правильно, догадаться не могу. |
|
30.09.2010, 22:54 | #2 |
Kostya Afendikov
|
Вы можете сделать группировку непосредственно при создании отчетов.
Сделайте необходимую выборку, а после делайте группировку в студии. В вашем случае подойдет даже Report Wizard. Думаю с ним вы можете работать |
|
30.09.2010, 23:45 | #3 |
Чайный пьяница
|
Цитата:
Сообщение от ipok
Есть 2 представления
new_dogovor new_ulsugi хочется выполнить вот такой запрос: X++: SELECT FilteredNew_dogovor.new_name, FilteredNew_uslugi.new_dogovor_usluginame, FilteredNew_dogovor.new_dogovor_statusname, SUM(FilteredNew_uslugi.new_summa) AS Expr1 FROM FilteredNew_dogovor INNER JOIN FilteredNew_uslugi ON FilteredNew_dogovor.new_name = FilteredNew_uslugi.new_dogovor_usluginame GROUP BY FilteredNew_dogovor.new_dogovor_statusname Понимаю, что делать суммирование по одной таблице и группировку по другой неверно, но как правильно, догадаться не могу. Код: SELECT FilteredNew_dogovor.new_name, FilteredNew_uslugi.new_dogovor_usluginame, FilteredNew_dogovor.new_dogovor_statusname, SUM(FilteredNew_uslugi.new_summa) AS Expr1 FROM FilteredNew_dogovor INNER JOIN FilteredNew_uslugi ON FilteredNew_dogovor.new_name = FilteredNew_uslugi.new_dogovor_usluginame GROUP BY FilteredNew_dogovor.new_dogovor_statusname, FilteredNew_dogovor.new_name, FilteredNew_uslugi.new_dogovor_usluginame
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
01.10.2010, 15:25 | #4 |
Участник
|
Не работает так как надо.
Есть 2 сущности - Договор и Услуги. Договор родительская для услуг. В сущности договор интересуют два поля - Вид договора и название. В сущности Услуги 2 поля - название договора (лукап) и сумма. Что хотелось бы получить в результате запроса: Вид договора 1 - 100 рублей Вид договора 2 - 200 рублей Вид договора 3 - 50 рублей Что удалось добиться самому - Вид договора 1 - 80 рублей Вид договора 1 - 20 рублей Вид договора 2 - 150 рублей Вид договора 2 - 50 рублей Вид договора 3 - 50 рублей Т.е. хотелось бы группировать га Виду договора в отчет. Может изначально туплю ? Последний раз редактировалось ipok; 01.10.2010 в 16:13. |
|
01.10.2010, 15:43 | #5 |
Чайный пьяница
|
Цитата:
Сообщение от ipok
Не работает так как надо.
Есть 2 сущности - Договор и Услуги. Договор родительская для услуг. В сущности договор интересуют два поля - Вид договора и название. В сущности Услуги 2 поля - название договора (лукап) и сумма. Что хотелось бы получить в результате запроса: Вид договора 1 - 100 рублей Вид договора 2 - 200 рублей Вид договора 3 - 50 рублей Цитата:
Если под видом договора подразумевается его имя, то джоины вообще не нужны и всё можно взять запросом просто из таблиц услуг вот таким образом: Код: SELECT FilteredNew_uslugi.new_dogovor_usluginame ,SUM(FilteredNew_uslugi.new_summa) AS Expr1 FROM FilteredNew_uslugi GROUP BY FilteredNew_uslugi.new_dogovor_usluginame
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
01.10.2010, 16:19 | #6 |
Участник
|
Чуть подправил верхний пост, как-то криво написался.
Задача: получить отчет отчет вида: Вид договора 1 - Сумма 1(суммирование всех услуг, по всем договорам с видом 1) Вид договора 2 - Сумма 2(суммирование всех услуг, по всем договорам с видом 2) Вид договора 1 - в сущности Договор Суммы берем из сущности Услуги. Имя договора из Сущности Договор и имя договора (лукап) из сущности Услуги - как связующие между тублицами. Вот и получаю по всем услугам : Вид 1 - 10 Вид 1 - 20 Вид 1 -30 Вид 2 - 40 и т.д. Надо сгрупировать по видам. Т.е. Вид 1 - 10+20+30 Вид 2 - 40 и т.д. Если совсем коряво оъясняю, могу скинуть скрины из Visual Studio )) |
|
01.10.2010, 16:27 | #7 |
Чайный пьяница
|
Как то мои вопросы из предыдущего поста остались неотвеченными. Удосужьтесь, пожалуйста, ответить на них, иначе помочь Вам не смогу.
Совет Вам - никогда не отлаживайте запросы в Visual Studio. Она не для того придумана. Пользуйтесь SQL Management Studio.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
01.10.2010, 17:30 | #8 |
Участник
|
Цитата:
Если интересуют поля Вид Договора, Название и сумма из дочерних - почему тогда в том, что хочется получить в результате вопроса - только тип договора и сумма?
Цитата:
Если хочется группировать по типу договора, то почему этого поля нет в запросе и зачем из услуг попытались вынуть имя, которое по сути больше нигде не используется.
Цитата:
Если под видом договора подразумевается его имя, то джоины вообще не нужны и всё можно взять запросом просто из таблиц услуг вот таким образом:
Цитата:
никогда не используйте джоин таблиц/отображений по именам (кроме случаев, когда это действительно необходимо) - используйте идентификаторы.
Сущность FilteredNew_dogovor, Поля new_name - имя договора new_dogovor_statusname - Вид (Тип) договора Сущность FilteredNew_uslugi Поля new_dogovor_usluginame - Лукап к договору new_summa - Сумма Последний раз редактировалось ipok; 01.10.2010 в 17:35. |
|
01.10.2010, 21:12 | #9 |
Участник
|
Заборол.
Вы были правы, так как поля имени договора не использовались то и не надо было их выбирать. Именно тут был весь косяк. Добавил одну фильтрацию, предварительную фильтрацию и столбец количества элементов в группе, сделал джоин по ид получился вот такой код: X++: SELECT CRMAF_New_dogovor.new_dogovor_statusname, SUM(FilteredNew_uslugi.new_summa) AS Expr1, COUNT(DISTINCT CRMAF_New_dogovor.new_dogovorid) AS Expr2 FROM FilteredNew_dogovor AS CRMAF_New_dogovor INNER JOIN FilteredNew_uslugi ON CRMAF_New_dogovor.new_dogovorid = FilteredNew_uslugi.new_dogovor_uslugi WHERE (FilteredNew_uslugi.new_oplata = 1) GROUP BY CRMAF_New_dogovor.new_dogovor_statusname |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Вопрос по RS | 7 | |||
Ошибка в RS | 3 | |||
Хранилище отчетов RS | 13 | |||
Callouts, Debagging, подскажите новичку | 6 | |||
не выгружается в Excel отчет из RS | 0 |
|