Как вернуть одну строку с итогом с помощью sql-запроса и или выражений в sql server

#jquery #sql #reporting-services #dataset #report

Вопрос:

У меня есть запрос, который я написал, чтобы вернуть общую сумму всех платежей. Что происходит, так это то, что когда я запускаю свой отчет, он возвращает несколько строк вместо одной строки, и я думаю, что это из-за предложения groupby, которое у меня есть в моем запросе. Дело в том, что, похоже, мне нужно сгруппировать, потому что некоторые поля включены в мой набор данных, например, я на самом деле фильтрую, используя дату транзакции, поэтому я не могу ее удалить. Это мой запрос ниже

 select distinct Transaction_Amount, Transaction_Type, Transaction_Date  --'R '  CONVERT(varchar,SUM(Transaction_Amount)) as [Epurse Credits/Deposits]
from Transactional_Account
where Transaction_Type like '%credit%'
 

Даже когда я помещаю свое выражение в качестве =SUM(Fields!Transaction_Amount.Value,"DataSet1") результирующего набора, оно все равно содержит несколько строк

Комментарии:

1. Пожалуйста, предоставьте примерные данные и желаемые результаты. Непонятно, что вы пытаетесь сделать.

Ответ №1:

Если вам нужна одна строка на транзакцию, удалите DISTINCT и используйте функции агрегирования:

 select max(Transaction_Amount), max(Transaction_Type), max(Transaction_Date)
      sum(Transaction_Amount) as [Epurse Credits/Deposits]
from Transactional_Account
where Transaction_Type like '%credit%';
 

Это возвращает произвольные (ну, максимальные) значения для каждого из других столбцов. Но вам гарантирован один ряд.

Ответ №2:

Нет необходимости включать ваш итог в запрос набора данных. Просто добавьте группу строк в таблицу/матрицу в дизайне отчета (или измените существующую группу строк «сведения») и сгруппируйте по всем общим полям, которые вам нужно отобразить.