该表如何统计数据

51dianying 2003-08-07 01:27:55
我有一个表,内记录用户购买产品的情况。字段如下:

id buylist totalmoney

12 车,房,菜 30


类似数据见上方。车是一个产品,房是一个产品...每个产品价格都一样,是20元,3样都买30元,这种情况下就平均算,车10,房10,菜10这样记入总数。

比如:这样:

id buylist totalmoney

12 车,房,菜 30
13 房,菜 40
14 车,房 40
15 房,菜 40
16 车,房,菜 30


如何用sql语句想分别求出买车(或者房)的人给网站贡献了多少钱?我现在还没有想出好办法。我想问一下如何判断一个字段值中,的个数?我的思路和这个有关。,=2就是全选,单独计算。不全选的订单查找车字,个数*20。再加上全选的订单个数*10就等于公司车的销售额。

请大家指点。谢谢。
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
51dianying 2003-08-07
  • 打赏
  • 举报
回复
多谢大家!!!
txlicenhe 2003-08-07
  • 打赏
  • 举报
回复
Select sum(case when charindex('车',buylist) > 1 then totalmoney/ceiling(len(buylist/2.0) else 0 end ) as 车贡献,
sum(case when charindex('房',buylist) > 1 then totalmoney/ceiling(len(buylist/2.0) else 0 end ) as 房贡献,
sum(case when charindex('菜',buylist) > 1 then totalmoney/ceiling(len(buylist/2.0) else 0 end ) as 菜贡献
from yourTable
CrazyFor 2003-08-07
  • 打赏
  • 举报
回复
包含的逗号个数
len('af,ad,fsdf')-len(replace('af,ad,fsdf' , ',' , ''))
CrazyFor 2003-08-07
  • 打赏
  • 举报
回复
len('af,ad,fsdf')-len(replace('af,ad,fsdf' , ',' , ''))
pengdali 2003-08-07
  • 打赏
  • 举报
回复
select top 8000 identity(int,1,1) id into #dali from sysobjects a,sysobjects b

select buylist,sum(totalmoney) 和 from (
select substring(','+b,id+1,charindex(',',','+buylist+',',id+1)-id-1) buylist,totalmoney/(len(buylist)-len(replace(buylist,',',''))) totalmoney from 你的表 aa,#dali bb where substring(','+buylist,id,8000) like ',_%' ) tem group by buylist


drop table #dali

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧