На досуге занимался отчетами и собрал несколько полезных примеров кода на 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