2017-03-26 4 views
0

Iは、以下txn_tableテーブルを有することにより、グループ化されたときに非ヌル値を割り当てる:Msssqlが別の列

Code  Category  Date TicketRevenue SnackRevenue BeverageRevenue 
A11  AA   8/14  100    80    60 
AT201  BB   8/19  300    150   100 
AT201  NULL   8/19  50    50    40 

私はそれがカラムによってグループ化された収益の列の和を表示するであろうように、データをフェッチしたいです:コード。カテゴリ列に同じcodeの行の1つがNULLの場合(たとえば、2つのAT201エントリでカテゴリが異なる場合)、その場所にBB(非NULL)値を割り当てることができます。カテゴリは、コードごとに2つの可能な値、すなわち非NULLおよびNULL値を有することができる。

例のレイアウト:

Code  Category  Date TicketRevenue SnackRevenue BeverageRevenue 
AMC  AA   8/14  100    80    60 
AT201  BB   8/19  350    200   140 

私はそれが可能代わりにそこにnull以外の値を取得する個別のではなく、ときにnull値を追加する方法を知っていますか?

select Code, if(count(distinct Category)=1, Category, NULL), Date,sum(TicketRevenue),sum(SnackRevenue), sum(BeverageRevenue) 
from txn_table 
group by Code 

参考:値とクエリは、特定の列または式から最大の非NULL値を返しますmax(またはmin)を使用することができます。このquestion

答えて

1

から借りてきました。

select Code, 
    max(Category), 
    date, 
    sum(TicketRevenue), 
    sum(SnackRevenue), 
    sum(BeverageRevenue) 
from txn_table 
group by Code 
+0

coolは非数値列に最小、最大を使用できるとわかりません –