当前位置:首页 » 编程语言 » 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.中包号

热点内容
g92编程 发布:2025-05-17 21:00:31 浏览:170
汇编语言第三版脚本之家 发布:2025-05-17 20:54:26 浏览:399
资源配置最佳状态叫什么 发布:2025-05-17 20:48:58 浏览:84
定义dns服务器的ip 发布:2025-05-17 20:32:37 浏览:954
android判断图片 发布:2025-05-17 20:32:33 浏览:833
安卓12什么时候适配小米 发布:2025-05-17 20:31:47 浏览:71
c语言字符串初始化 发布:2025-05-17 20:18:43 浏览:37
安卓融e联推送需要什么权限 发布:2025-05-17 20:18:39 浏览:269
我的世界无限武魂服务器 发布:2025-05-17 20:17:09 浏览:372
安卓手游脚本语言 发布:2025-05-17 19:53:07 浏览:22