2016-07-24 59 views
0

我的问题是我有像这样保存数据的数据库。例如,你发布了一些内容,但是有一些类型的帖子。另外一个是每周帖子,另一个是每日帖子。在我的数据库中,我有专栏告诉我是每周还是每日发布。SQL选择具有一个不同真值的两行

id | senderID | message | weekly | daily 
1  5  "hello"  1  0 
2  5  "Fun joke" 0  1 

那么我是如何选择那些两行一列显示是否已经做了每日和每周的消息,该行应该是这样的

senderID | message | weekly | daily 
    5  "hello"  1  1 

但如果发送者还没有完成日常消息时,它显示

senderID | message | weekly | daily 
    5  "hello"  1  0 

回答

1

试试这个:

select 
    senderid, 
    case when sum(weekly) > 0 then 1 else 0 end [weekly], 
    case when sum(daily) > 0 then 1 else 0 end [daily] 
from TABLENAME 
group by senderid 

用实际表名替换TABLENAME :)

相关问题