2017-03-26 38 views
0

我有以下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(例如,類別在2個AT201條目中不同)的行之一具有NULL,則我希望在該點中分配BB(非空)值。類別對每個代碼只能有兩個可能的值,即非空值和空值。

佈局例:

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

我知道如何添加空值時,它是不顯着但有可能得到一個非空值有呢?

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

參考:價值觀和查詢已經從這個question

回答

1

借你可以使用max(或min)返回從給定的列或表達式最大非空值。

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

很酷不知道你可以在非數字列上使用min,max –