当前位置:首页 » 编程语言 » sql好难写

sql好难写

发布时间: 2024-09-10 02:55:10

⑴ 求助,一个sql语句不会写,跪求帮助啊

--测试表
CreateTableusers
(
nameVarchar(10),
sumscoreint
)

CreateTablesales
(
nameVarchar(10),
scoreint
)

--合并在一起的触发器,批量对sales做增删改都没问题,楼上的写法嘛,嘿嘿
--但有个问题,你的name是关键字,你如果修改name,该怎么处理?
CreateTriggertr_salesonsales
ForInsert,Delete,Update
As
Begin
mergeintousersM
using
(
Selectname,Sum(isnull(score,0))Asscore
From
(
Selectname,scoreFrominserted
Unionall
Selectname,-1*scoreFromdeleted
)S
GroupByname
)N
onM.name=N.Name
WhenmatchedThen
updateSetM.sumscore=M.sumscore+N.score
WhenNotmatchedThen
InsertValues(N.Name,N.score);
End

⑵ 怎么提高写sql语句的能力

不建议在工作中写很复杂的sql语句 这样会让代码复用率降低很多 而且不易后期维护和扩展 建议把复杂的sql语句拆分成多个简单的语句 封装成存储过程 这样会比较好 而且大量的多表查询会让系统延迟很高 容易死锁

⑶ 写sql完全没思路,求sql大佬

首先,业务逻辑有点不清晰,现在假设第一道工序是开浇,开浇有开浇时间和结束时间,结束后在进行停浇工序,停浇有开浇时间和停浇时间。
目前来看,从你给出的数据,开浇和停浇,没有必然的联系,但是从数据分析,从开浇开始到开浇结束,至少用一个整天,而停浇开始时间一定是在开浇结束当天进行的,并且同一个中包号,每次停浇结束后,当天是不会在开浇的。
有了这些条件,应该可以查询了。定义以上的查询结果是表table
select * from table a,table b
where substr(a.停浇时间,1,10)=substr(b.开浇时间,1,10) and a.中包号=b.中包号

热点内容
java开发要学习什么技术 发布:2024-11-25 06:20:28 浏览:999
java猿 发布:2024-11-25 06:18:36 浏览:126
如何刷安卓44 发布:2024-11-25 06:18:32 浏览:528
安卓手机怎么限制app时间 发布:2024-11-25 06:14:15 浏览:402
福建虚拟服务器管理软件云服务器 发布:2024-11-25 06:05:46 浏览:105
android加载图片 发布:2024-11-25 06:05:00 浏览:167
linux的ls 发布:2024-11-25 05:47:56 浏览:843
oracle存储过程游标实例 发布:2024-11-25 05:40:32 浏览:804
xpsql2000 发布:2024-11-25 05:20:20 浏览:372
如何设置安卓上拉菜单 发布:2024-11-25 05:20:12 浏览:5