AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.09.2010, 22:04   #1  
ipok is offline
ipok
Участник
 
40 / 11 (1) +
Регистрация: 18.08.2010
Подскажите опять по 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  
Bondonello is offline
Bondonello
Kostya Afendikov
Аватар для Bondonello
MCBMSS
Лучший по профессии 2009
 
510 / 106 (5) +++++
Регистрация: 06.06.2008
Адрес: Украина
Вы можете сделать группировку непосредственно при создании отчетов.
Сделайте необходимую выборку, а после делайте группировку в студии. В вашем случае подойдет даже Report Wizard. Думаю с ним вы можете работать
Старый 30.09.2010, 23:45   #3  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от 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  
ipok is offline
ipok
Участник
 
40 / 11 (1) +
Регистрация: 18.08.2010
Не работает так как надо.

Есть 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  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от ipok Посмотреть сообщение
Не работает так как надо.

Есть 2 сущности - Договор и Услуги.
Договор родительская для услуг.

В сущности договор интересуют два поля - Вид договора и название.
В сущности Услуги 2 поля - название договора (лукап) и сумма.

Что хотелось бы получить в результате запроса:

Вид договора 1 - 100 рублей
Вид договора 2 - 200 рублей
Вид договора 3 - 50 рублей
Если интересуют поля Вид Договора, Название и сумма из дочерних - почему тогда в том, что хочется получить в результате вопроса - только тип договора и сумма?

Цитата:
Сообщение от ipok Посмотреть сообщение
Т.е. хотелось бы группировать га Виду договора в отчет.
Может изначально туплю ?
Если хочется группировать по типу договора, то почему этого поля нет в запросе и зачем из услуг попытались вынуть имя, которое по сути больше нигде не используется.

Если под видом договора подразумевается его имя, то джоины вообще не нужны и всё можно взять запросом просто из таблиц услуг вот таким образом:

Код:
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  
ipok is offline
ipok
Участник
 
40 / 11 (1) +
Регистрация: 18.08.2010
Чуть подправил верхний пост, как-то криво написался.

Задача: получить отчет отчет вида:

Вид договора 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  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Как то мои вопросы из предыдущего поста остались неотвеченными. Удосужьтесь, пожалуйста, ответить на них, иначе помочь Вам не смогу.

Совет Вам - никогда не отлаживайте запросы в Visual Studio. Она не для того придумана. Пользуйтесь SQL Management Studio.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
Старый 01.10.2010, 17:30   #8  
ipok is offline
ipok
Участник
 
40 / 11 (1) +
Регистрация: 18.08.2010
Цитата:
Если интересуют поля Вид Договора, Название и сумма из дочерних - почему тогда в том, что хочется получить в результате вопроса - только тип договора и сумма?
Вид договора - это тип договора. Это одно и тоже. По разному выразился.

Цитата:
Если хочется группировать по типу договора, то почему этого поля нет в запросе и зачем из услуг попытались вынуть имя, которое по сути больше нигде не используется.
вот это поле FilteredNew_dogovor.new_dogovor_statusname

Цитата:
Если под видом договора подразумевается его имя, то джоины вообще не нужны и всё можно взять запросом просто из таблиц услуг вот таким образом:
Вид договора (тип договора) - это не его имя.

Цитата:
никогда не используйте джоин таблиц/отображений по именам (кроме случаев, когда это действительно необходимо) - используйте идентификаторы.
Спасибо за совет

Сущность
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  
ipok is offline
ipok
Участник
 
40 / 11 (1) +
Регистрация: 18.08.2010
Заборол.

Вы были правы, так как поля имени договора не использовались то и не надо было их выбирать. Именно тут был весь косяк.
Добавил одну фильтрацию, предварительную фильтрацию и столбец количества элементов в группе, сделал джоин по ид
получился вот такой код:

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 ipok Dynamics CRM: Разработка 7 10.09.2010 16:55
Ошибка в RS slivka_83 Dynamics CRM: Администрирование 3 11.03.2009 12:05
Хранилище отчетов RS slivka_83 Dynamics CRM: Администрирование 13 27.02.2009 00:29
Callouts, Debagging, подскажите новичку Bondonello Dynamics CRM: Разработка 6 14.07.2008 18:50
не выгружается в Excel отчет из RS glad Dynamics CRM: Разработка 0 31.10.2006 17:24

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:46.