请教查询求和语句?

zpingfang 2018-10-20 09:22:03
请教各位老师,我想显示所有商品,但是想把所有品名相同的商品求和后一起显示,应该怎么写呢?
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zpingfang 2018-10-20
  • 打赏
  • 举报
回复
引用 10 楼 sinat_28984567 的回复:
[quote=引用 9 楼 zpingfang 的回复:]
[quote=引用 8 楼 sinat_28984567 的回复:]
mysql啊?这里是mssql版块,两个语法是不一样的,另外6#那个代码也是有问题的,mysql那个写法不报错是不标准的


不好意思老师,我也看到选错版块了,我用六楼那个语句可以运行,暂时没有报错[/quote]
所以说mysql不标准,因为这个语句是错误的,没有意义。
你先用这个语句吧,随着深入学习你会慢慢体会到的[/quote]

好的,谢谢老师
二月十六 2018-10-20
  • 打赏
  • 举报
回复
引用 9 楼 zpingfang 的回复:
[quote=引用 8 楼 sinat_28984567 的回复:]
mysql啊?这里是mssql版块,两个语法是不一样的,另外6#那个代码也是有问题的,mysql那个写法不报错是不标准的


不好意思老师,我也看到选错版块了,我用六楼那个语句可以运行,暂时没有报错[/quote]
所以说mysql不标准,因为这个语句是错误的,没有意义。
你先用这个语句吧,随着深入学习你会慢慢体会到的
zpingfang 2018-10-20
  • 打赏
  • 举报
回复
引用 8 楼 sinat_28984567 的回复:
mysql啊?这里是mssql版块,两个语法是不一样的,另外6#那个代码也是有问题的,mysql那个写法不报错是不标准的


不好意思老师,我也看到选错版块了,我用六楼那个语句可以运行,暂时没有报错
二月十六 2018-10-20
  • 打赏
  • 举报
回复
mysql啊?这里是mssql版块,两个语法是不一样的,另外6#那个代码也是有问题的,mysql那个写法不报错是不标准的
zpingfang 2018-10-20
  • 打赏
  • 举报
回复
引用 5 楼 sinat_28984567 的回复:
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[pinming] nvarchar(24),[guige] nvarchar(21),[shuliang] int,[riqi] Date)
Insert #T
select 1,N'肉馅',N'箱',6,'2018-10-10' union all
select 2,N'荠菜肉馅',N'箱',10,'2018-10-10' union all
select 3,N'小混沌',N'箱',5,'2018-10-10' union all
select 4,N'肉馅',N'箱',10,'2018-10-15' union all
select 5,N'小混沌',N'箱',10,'2018-10-15'
Go
--测试数据结束
SELECT t.ID,t.pinming,t.guige,sumshuliang AS 数量,t.riqi FROM (
Select *,SUM(shuliang)OVER(PARTITION BY pinming) AS sumshuliang,ROW_NUMBER()OVER(PARTITION BY pinming ORDER BY ID) rn from #T)t
WHERE rn=1
ORDER BY t.ID





老师运行提示错误呢
songben96998 2018-10-20
  • 打赏
  • 举报
回复
select pinming,guige,sum(shuliang) as shuliang,riqi from table group by pinming
二月十六 2018-10-20
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[pinming] nvarchar(24),[guige] nvarchar(21),[shuliang] int,[riqi] Date)
Insert #T
select 1,N'肉馅',N'箱',6,'2018-10-10' union all
select 2,N'荠菜肉馅',N'箱',10,'2018-10-10' union all
select 3,N'小混沌',N'箱',5,'2018-10-10' union all
select 4,N'肉馅',N'箱',10,'2018-10-15' union all
select 5,N'小混沌',N'箱',10,'2018-10-15'
Go
--测试数据结束
SELECT t.ID,t.pinming,t.guige,sumshuliang AS 数量,t.riqi FROM (
Select *,SUM(shuliang)OVER(PARTITION BY pinming) AS sumshuliang,ROW_NUMBER()OVER(PARTITION BY pinming ORDER BY ID) rn from #T)t
WHERE rn=1
ORDER BY t.ID


zpingfang 2018-10-20
  • 打赏
  • 举报
回复
引用 2 楼 sinat_28984567 的回复:
这样对吗?如果不对给出对的格式。
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[pinming] nvarchar(24),[guige] nvarchar(21),[shuliang] int,[riqi] Date)
Insert #T
select 1,N'肉馅',N'箱',6,'2018-10-10' union all
select 2,N'荠菜肉馅',N'箱',10,'2018-10-10' union all
select 3,N'小混沌',N'箱',5,'2018-10-10' union all
select 4,N'肉馅',N'箱',10,'2018-10-15' union all
select 5,N'小混沌',N'箱',10,'2018-10-15'
Go
--测试数据结束
Select *,SUM(shuliang)OVER(PARTITION BY pinming) AS 求和 from #T ORDER BY pinming




老师,能只显示一个品名吗?
zpingfang 2018-10-20
  • 打赏
  • 举报
回复

就像这样,相同的商品只显示一次,数量是总和
二月十六 2018-10-20
  • 打赏
  • 举报
回复
这样对吗?如果不对给出对的格式。
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[pinming] nvarchar(24),[guige] nvarchar(21),[shuliang] int,[riqi] Date)
Insert #T
select 1,N'肉馅',N'箱',6,'2018-10-10' union all
select 2,N'荠菜肉馅',N'箱',10,'2018-10-10' union all
select 3,N'小混沌',N'箱',5,'2018-10-10' union all
select 4,N'肉馅',N'箱',10,'2018-10-15' union all
select 5,N'小混沌',N'箱',10,'2018-10-15'
Go
--测试数据结束
Select *,SUM(shuliang)OVER(PARTITION BY pinming) AS 求和 from #T ORDER BY pinming


二月十六 2018-10-20
  • 打赏
  • 举报
回复
最后的结果想要什么样的,写出来

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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