當前位置:首頁 » 編程語言 » 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.中包號

熱點內容
vscode怎樣預編譯 發布:2025-08-25 00:48:29 瀏覽:437
tomcatlinux配置 發布:2025-08-25 00:45:55 瀏覽:798
查看oracle包編譯前的內容 發布:2025-08-25 00:43:31 瀏覽:814
黑名單源碼 發布:2025-08-25 00:37:38 瀏覽:320
mac未連接到互聯網檢查代理伺服器地址 發布:2025-08-25 00:03:05 瀏覽:66
我的世界伺服器游戲嘉年華ip 發布:2025-08-24 23:50:22 瀏覽:215
oracle資料庫的優化 發布:2025-08-24 23:42:41 瀏覽:974
python字元串空 發布:2025-08-24 23:19:27 瀏覽:333
馬來溯源碼 發布:2025-08-24 22:44:57 瀏覽:768
伺服器雙電源注意什麼 發布:2025-08-24 22:44:48 瀏覽:10