當前位置:首頁 » 編程語言 » 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返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:678
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:251
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705