sql取出一个字段的多个值并求和
我现在想计算账单表的金额,金额是根据点餐表的点餐菜号,点餐菜号对应菜谱表里的价格。比如第一行的金额93是30+28+35得来的就是问怎么写sql语句...
我现在想计算账单表的金额,金额是根据点餐表的点餐菜号,点餐菜号对应菜谱表里的价格。
比如第一行的金额93是30+28+35得来的
就是问怎么写sql语句 展开
比如第一行的金额93是30+28+35得来的
就是问怎么写sql语句 展开
展开全部
现在的表结构想直接出帐单得写存储过程或自己处理了。为什么不修改下点餐 表:
把菜号分开,一个菜一条记录,这样就方便多了。
另外,现在结构上有点问题:没有考虑一桌有多个流水的情况。
把菜号分开,一个菜一条记录,这样就方便多了。
另外,现在结构上有点问题:没有考虑一桌有多个流水的情况。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个function 获得金额(菜号 nvarchar(200))
return int
首先把菜号根据,分割为n个菜,然后一个个获得并累加返回
return int
首先把菜号根据,分割为n个菜,然后一个个获得并累加返回
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询