2 u011095901 u011095901 于 2016.03.23 08:42 提问

Mysql 统计求和时如何将查不到的结果置为0

select t.user_id, sum(t.TRADE_MONEY) from lc_account_records t
where t.USER_ID in (42,43,46,50,80)
group by t.USER_ID ;

由于user_id是一个外键,where条件中的user_id可能在这个表中没有记录,查询5条结果只能返回3条结果集,现在想将没有结果的返回0,这该怎么做呢,求各位大神帮忙!

2个回答

zhangjs712
zhangjs712   2016.03.23 08:56

select temp1.USER_ID ,temp12.num from
(select distinct t1.USER_ID from lc_account_records t1 where t1.USER_ID in (42,43,46,50,80) ) as temp1

left join
(select t.user_id, sum(t.TRADE_MONEY) as num from lc_account_records t
where t.USER_ID in (42,43,46,50,80)
group by t.USER_ID) as temp2 on temp1.user_id = temp12.USER_ID

u011095901
u011095901   2016.03.23 09:40

虽然不是我想要的结果,但是还是很感谢了。自己在程序里处理吧,写sql感觉不太好解决。把自己想要的结果贴出来,希望有大神帮忙解决!
user_id, sum(t.TRADE_MONEY)
42, 0
43, 5555859.27
46, 260.00
50, 600.36
80, 0

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用mysql sum统计函数 结果为null时返回值改为0
//查询定时任务是否存在 public Integer getPetTime(HomePetTime homePetTime){ Integer result = 0; ConnectionDB util = new ConnectionDB(); Object[] objs =new Object[]{homePetTime.getGateway_id(),homePetTime.
使用mysql 统计函数 结果为null时返回值改为0
SELECT COALESCE(SUM(total),0)  FROM test_table
设置将查询原结果为NULL的字段值置为0.0(数值型)或‘’(字符型)
--使用SQL Server自带之范例数据库pubs。其中原price字段类型为Money,notes字段类型为varchar(200)--通用做法(好处在于不仅可以应用于转零,还可以转为任何想要的值):select title, Price123 =  case    when price is null then 0.0    else price  end, type,   notes
mysql 查询24小时内 数据,null用0代替
由于数据库中group by语句分类筛选为空的时间段酒无法显示 所以如果数据不全时,我们使用DATE_FORMAT(create_time, '%H')这个函数也无法获取完整的24小时数据,使用下面这种方法将没有数据的时间短用0代替 完整语句如下: SELECT dayHour, IF(count IS NULL, 0, count) FROM (SELECT coun
解决数据库查询时Null的问题(如SUM函数)
#SUM(expr)函数如果表达式没有数据,那么返回的结果就会为空,下面介绍四种方法解决NUll问题: #第一种: 采用 IFNULL(expr1,expr2)函数,当expr1为NULL时,则数据返回默认值expre2 SELECT IFNULL(SUM(expr),0) -- 表示若 SUM()函数结果返回为NULL泽返回0 #第二种: 采用从 COALESCE(value,...)
sql查询数值为null时处理成0
在遇到多张表查询时,很可能查一个关联数值时,并没有这条关联记录,所以查询到的结果是null,通常需要把这个结果处理成0或者其他。 这时候就用isNULL(字段,0) 如: select car_repair.supplier_name , isNULL(sum(car_repair.tocal_maintain_money),0)+isNULL(sum(car_repair_work_h
sql查询语句没有结果时赋值为0
if exists(select id from tablename where id = value) begin select id from hrmresource where id = value end else select 0 as id
一对多 group by 后 查询 count(*) ,但是 count(*)=0的不能显示
查询在ts下面的pt已经完成的个数,但是按照下面的sql查询不出来 count(pt.id已完成)=0的ts记录 SELECT ts.*, COUNT(pt.id) FROM  trial_record ts  LEFT JOIN trial_record tg ON ts.id = tg.p_id AND ts.trial_id = tg.trial_id LEFT JOIN tr
mysql让count为0的记录也显示出来
在mysql 下执行如下命令:select use_city,count(*) from data where os="Windows 2003 Std" group by use_city;得到的结果为: +-----------+----------+ | use_city | count(*) | +-----------+----------+ | Beijing | 2 | |
sql 分组统计,数据为空时显示0
1.未添加时间搜索条件,查询结果如下2. 添加时间添加后,未有符合条件的数据,呈现的结果如下:实际想要的结果 应该是如下情况:直接上代码:SELECT name, SUM (Total) AS total, SUM (Untreated) AS untreated, SUM (Dealing) AS dealing, SUM (Handled) AS handledFROM ( SELECT o...