2015-03-11 4 views
-1

Я работал над sql-запросом и пытался создать новую строку, которая отображает итоговую сумму каждого столбца ниже.Почему мой результирующий набор не создает сумму для каждого столбца?

Я получаю это прямо сейчас

DateTime 10Quantity 20Quantity 30Quantity 10Amount 20Amount 30Amount GrandTotal 
03/10/2015 792  0   594  7920  0  17820 25740 
03/10/2015 332  3   194  9990  0  28220 38739 

, но я хочу, чтобы это как выход:

DateTime 10Quantity 20Quantity 30Quantity 10Amount 20Amount 30Amount GrandTotal 
03/10/2015 792  0   594  7920  0  17820 25740 
03/10/2015 332  3   194  9990  0  28220 38739 
Totals  1124  3   788  17910  0  46040 64479 

SP: Даже я попытался GROUPING НАБОРЫ, но не удалось достичь. Пожалуйста помоги.

ALTER PROCEDURE [dbo].[ReportDenominationWiseTransaction] '03-10-2015', '03-10-2015' 
    @FromDate date, 
    @ToDate date 
    AS 
     BEGIN 
      with myquery ([DateTime],amount,Quantity) 
      as 
      (
       select Convert(varchar(20),serverdatetime,101) 'DateTime',amount,1 'Quantity' 
        from tickets 
        WHERE CONVERT(DATE,ServerDateTime) BETWEEN @FromDate and @ToDate 
      ) 
      select *, 10 * c.[10Quantity] '10Amount',20 * c.[20Quantity] '20Amount',30 * c.[30Quantity] '30Amount',((10 * c.[10Quantity])+(20 * c.[20Quantity])+(30 * c.[30Quantity]))'GrandTotal' from (
      SELECT DateTime,[10] AS '10Quantity', [20] AS '20Quantity', [30] AS '30Quantity' 
      FROM 
      (SELECT [DateTime], amount,quantity 
      FROM myquery) p 
      PIVOT 
      (
      COUNT ([Quantity]) 
      FOR [Amount] IN 
      ([10], [20], [30]) 
      ) AS pvt 
      ) as c 
     END 
+1

: [Ваш предыдущий вопрос здесь] (http://stackoverflow.com/questions/28981125/why-my-result-set-doesnt-produce- сумма-в-каждой колонке). Используйте SQL-запрос 'GROUPING SETS' и привяжите этот результат к' GridView'. [Мой предыдущий ответ здесь] (http://stackoverflow.com/questions/28963625/how-to-produce-sum-of-each-column-in-sql/28964424#28964424). – Wanderer

+0

сэр я попробовал группировки, но все перепуталось, ничего не сработало, может быть, я слился с этим неправильно, может ли помочь мне? –

+0

Почему бы не использовать UNION ALL? Итак, просто создайте первую таблицу результатов (как вы уже ее использовали, а затем добавьте с UNION ALL сумму вниз. – Ralph

ответ

0

попробовать, как это ..

CREATE TABLE #tmpRes 
(
DateTime varchar(50), 
10Quantity varchar(50), 
20Quantity varchar(50), 
10Quantity varchar(50), 
10Quantity varchar(50), 
10Amount varchar(50), 
20Amount varchar(50), 
30Amount varchar(50), 
GrandTotal varcahr(50) 
) 

INSERT INTO #tmpRes(col1,col2,....) 
SELECT cols1,col2,.. 
FROM my_table 

INSERT INTO #tmpRes(col1,col2,....) 
SELECT 'Totals',sum(10Quantity),sum(20Quantity)....... 
FROM my_table 


select * from #tmpRes 
Смежные вопросы