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

熱點內容
反編譯適配遙控器 發布:2025-10-18 20:53:06 瀏覽:25
javaclass運行 發布:2025-10-18 20:45:39 瀏覽:584
dnf強化腳本 發布:2025-10-18 20:45:16 瀏覽:559
小說源碼網 發布:2025-10-18 20:32:25 瀏覽:84
java加減乘除表達式編譯器 發布:2025-10-18 20:26:29 瀏覽:674
刪除演算法介紹 發布:2025-10-18 20:12:02 瀏覽:640
恢復伺服器刪除文件夾 發布:2025-10-18 19:50:41 瀏覽:441
訪問ip量伺服器 發布:2025-10-18 19:49:48 瀏覽:877
C語言輸入怎麼寫 發布:2025-10-18 19:27:46 瀏覽:747
如何修改安卓手機屏幕解析度 發布:2025-10-18 19:08:46 瀏覽:366