sql取出一个字段的多个值并求和

我现在想计算账单表的金额,金额是根据点餐表的点餐菜号,点餐菜号对应菜谱表里的价格。比如第一行的金额93是30+28+35得来的就是问怎么写sql语句... 我现在想计算账单表的金额,金额是根据点餐表的点餐菜号,点餐菜号对应菜谱表里的价格。
比如第一行的金额93是30+28+35得来的
就是问怎么写sql语句
展开
 我来答
blademaster717
2014-11-20 · TA获得超过1456个赞
知道小有建树答主
回答量:882
采纳率:97%
帮助的人:368万
展开全部
select 点餐编号 as 账单编号,sum(价格) as 金额 from
(select a.点餐编号,b.价格 from 点单 a left join 菜谱 b
on ',' + a.点餐单号 + ',' like '%,' + b.菜号 + ',%') c group by 点餐编号
bignode
推荐于2018-05-10 · TA获得超过2664个赞
知道大有可为答主
回答量:1427
采纳率:75%
帮助的人:545万
展开全部
现在的表结构想直接出帐单得写存储过程或自己处理了。为什么不修改下点餐 表:
把菜号分开,一个菜一条记录,这样就方便多了。
另外,现在结构上有点问题:没有考虑一桌有多个流水的情况。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友62efd0c
2014-11-20 · TA获得超过405个赞
知道小有建树答主
回答量:854
采纳率:0%
帮助的人:614万
展开全部
写一个function 获得金额(菜号 nvarchar(200))
return int

首先把菜号根据,分割为n个菜,然后一个个获得并累加返回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
看淡风雨RK
推荐于2016-08-07 · TA获得超过153个赞
知道小有建树答主
回答量:287
采纳率:60%
帮助的人:61.4万
展开全部
create function f_splitstr(@SourceSql varchar(8000),@StrSeprate varchar(100))
returns @temp table(F1 varchar(100))
as
begin
declare @ch as varchar(100)
set @SourceSql=@SourceSql+@StrSeprate
while(@SourceSql<>'')
begin
set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)
insert @temp values(@ch)
set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')
end
return
end

select sum(菜号) 金额 from 菜谱 where 菜号 in(select * from dbo.f_splitstr(select 菜号 from 点餐 where 点餐编号=1))
end
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式