На досуге занимался отчетами и собрал несколько полезных примеров кода на T-SQL, которые можно использовать в отчетах для Microsoft Dynamics CRM 4.0.
1. Получение дня недели
CASE DATEDIFF(DAY,0, createdon)%7 WHEN 0 THEN 'Понедельник' WHEN 1 THEN 'Вторник' WHEN 2 THEN 'Среда' WHEN 3 THEN 'Четверг' WHEN 4 THEN 'Пятница' WHEN 5 THEN 'Суббота' WHEN 6 THEN 'Воскресенье' END as 'Дата, день недели'
2. Функция для получения списка фамилий контактов через точку с запятой. Параметры: guid организации.
Основную работу выполняет стандартная функция COALESCE, которая позволяет объединить строки через разделитель.
CREATE FUNCTION [dbo].[GetContactList](@AccountID varchar(40)) RETURNS varchar(max) AS BEGIN DECLARE @StringList varchar(max) SELECT @StringList = COALESCE(@StringList + '; ', '') + c.fullname from account a left join contact c on c.parentcustomerid = @AccountID IF @StringList IS NULL SET @StringList = 'Нет контактов' RETURN @StringList END
Пример вызова:
[DB_Name].[dbo].[GetContactList](accountid) as 'Контакты'
Результат : Иванов; Петров; Сидоров
3. Конвертирование даты в формате дд.мм.гггг
3.1 T-SQL
(CONVERT(varchar(10),createdon, 104)
3.2 в SQL Server Business Intelligence Development Studio: Format(Parameters!startdate.Value,»dd.MM.yyyy»)
4. Форматирование поля типа money, float с разрядами
Format(Sum(Fields!Сумма.Value),»### ### ##0.0#»)
Прошлая небольшая подборка здесь: Полезные SQL-функции для использования в отчетах MS CRM

15.06.2010 в 11:20
По поводу первого, лучше использовать встроенный механизм, чем калькуляции вставлять. Чтото вроде такого:
CASE DATEPART(DW, createdon)
WHEN 1 THEN ‘Воскресенье’
WHEN 2 THEN ‘Понедельник’
WHEN 3 THEN ‘Вторник’
WHEN 4 THEN ‘Среда’
WHEN 5 THEN ‘Четверг’
WHEN 6 THEN ‘Пятница’
WHEN 7 THEN ‘Суббота’
END as ‘Дата, день недели’
15.06.2010 в 12:06
Спасибо. Так быстрее получится