#sql-server #excel #csv #reporting-services #decimal
#sql-server #excel #csv #службы отчетов #десятичная
Вопрос:
Использование SSRS для создания отчета из SQL, сохранение его в Excel для последующего сохранения в CSV (из-за форматирования)
У меня есть чистые значения до разных знаков после запятой. Столбец A равен net * X, а отдельный столбец B, который указывает, что net является отрицательным или положительным значением
Поле C — это сумма (net * X), т. Е.:
=Sum (
// based on Column B, its a positve or a negative value
IIf(Fields!TranType.Value="X", Fields!Net.Value * -1, Fields!Net.Value)
) * Parameters!UnitPrice.Value
Моя проблема здесь в том, что я пробовал round(net,2), Format(net, ###.##), Cast(net, КАК ДЕСЯТИЧНОЕ число (10,2)). Теоретически сумма столбца A (с данными из столбца B) должна равняться результату в поле C, но я всегда отклоняюсь от 0,01 до 0,04.
Кто-нибудь может порекомендовать, как лучше управлять десятичными знаками, чтобы сумма столбца A = поле C?
Пожалуйста, обратите внимание, что я загружаю список в Excel, в Excel он выглядит правильно, когда я делаю сравнение, но когда я сохраняю в CSV и загружаю в другую программу, которая проверяет данные, она жалуется на неверность 0,01. По сути, Excel отображает данные правильно, CSV тоже отображается правильно.
Комментарии:
1. Отредактируйте свой вопрос и покажите свои фактические выражения и включите типы данных всех используемых столбцов Также было бы полезно, если бы вы могли опубликовать некоторые примеры данных, показывающие проблему с ожидаемыми результатами.
2. Net — это число с плавающей запятой, UnitPrice — это сумма в долларах, скажем, 100,00 долларов. Все вычисления основаны на чистой стоимости.
3. Кажется, что вы не можете суммировать с числом с плавающей запятой, поскольку это только приблизительное число.