2016-09-07 2 views
0

行ごとに生データを表示するには、どのクエリを実行する必要がありますか?それを行う方法はありますか?このようrollupgrouping setsなどの修飾子によって各グループの前の生データ

User ReceiptNo Price 
----- ---------- ------ 
A  876   100 
A  877   50 
        **150** 
B  960   60 
B  961   40 
        **100** 
+1

ご使用のデータベースに質問にタグを付けてください。 –

+0

これをSQLを使用して実行するか、TableauまたはSSRSなどのレポートツールでこの小計と総計を行うことをお勧めしますか? SQLでROLLUPを使用する方法について調べる必要があります。それはあなたを助けるはずです。 – raunakjhawar

答えて

1

ほとんどのデータベースのサポート標準グループ。もしそうなら、あなたが行うことができます:

select user, receiptno, sum(price) as price 
from t 
group by grouping sets ((user, receiptno), (user)); 
+0

これはSql Server 2014のマシンで正常に動作しますが、SQL Server 2008ではエラーが発生します。 –

+0

@kk_nou。 。 。私は、SQL Server 2008がこの構文をサポートしていると確信しています(たとえば、https://blogs.msdn.microsoft.com/craigfr/2007/10/11/grouping-sets-in-sql-server-2008/)。おそらく、以前のバージョンに設定されているサーバー上の互換性設定があります。 –

0
select user, receiptno, price, 1 as order_column 
from t 
union all 
select user, '' as receiptno, sum(price) as price, 2 as order_column 
from t 
group by user 

order by user, order_column 

あなたは、生のデータを持つ労働組合の結果とは、人工的な列を追加することができます(生データの後に)グループの終わりに集計行を配置するために、ORDER BYで使用します。

関連する問題