2015-07-31 6 views
0

У меня есть 2 столбца рядом друг с другом в отчете, который я создаю. Они содержат одну и ту же структуру с одной небольшой разницей. Одна колонка оглядывается назад во времени немного дальше, чем другая. Я проверил, что данные должны быть найдены. Группа строк ниже возвращает строки, используя одну и ту же структуру. Столбец A возвращает правильные данные. В столбце B нет.SQL Server Reporting Services Дата/сумма weirdness

Колонка A Выражение

=IIF(Format(Fields!IncomingInvoiceDate.Value, "yyyy-MM-dd") > DateAdd("d", -31, Now()), Sum(Fields!Value.Value), 0) 

Колонка B Выражение

=IIF(Format(Fields!IncomingInvoiceDate.Value, "yyyy-MM-dd") >= DateAdd("d", -61, Now()), Sum(Fields!Value.Value), 0) 

Я попытался каждый вариант я могу найти, и ничего не возвращает правильные данные. Я на SQL Server 2012. Спасибо за любую помощь.

+0

Мое предложение изменить набор данных. Используйте случай заявление в SQL.Am я исправить вы пытаетесь сделать SUMIF ? –

+0

Если вы дадите нам пример данных, возвращаемых в вашем наборе данных, и то, что в настоящий момент возвращает ваш экземпляр B Expression, и что вы хотите, чтобы он вернулся, тогда MAYBE кто-то сможет вам помочь. –

+0

Жаль, что я не могу опубликуйте возврат данных для confiden но я могу сказать, что столбец А возвращает суммарное значение для записей, созданных в течение 30 дней. Столбец B должен вернуть суммарное значение для записей, созданных в течение 61 дня, но вместо этого возвращает 0. –

ответ

0

Положите ваш IF внутри СУММ, а не наоборот.

Что-то вроде этого должно работать. Вы захотите изменить как 30-дневные, так и 60-дневные выражения, чтобы соответствовать этому шаблону.

Сумма ( IIF (Format (Fields! IncomingInvoiceDate.Value, "гггг-ММ-дд")> = DateAdd ("d", -61, сейчас()), Поля! Value.Value, 0)

0

Он ничего не получается работал, и я полностью переработан запрос. Спасибо всем.

Смежные вопросы