當前位置:首頁 » 編程語言 » 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-07-15 04:29:53 瀏覽:430
安卓編譯打包 發布:2025-07-15 04:24:20 瀏覽:169
bat編譯器 發布:2025-07-15 04:18:07 瀏覽:54
中興伺服器登錄地址 發布:2025-07-15 04:02:47 瀏覽:988
手提箱怎麼改密碼 發布:2025-07-15 03:55:47 瀏覽:219
did腳本 發布:2025-07-15 03:55:12 瀏覽:963
殘留溶劑線性濃度如何配置 發布:2025-07-15 03:54:31 瀏覽:134
部落沖突好號密碼是什麼 發布:2025-07-15 03:48:45 瀏覽:971
存儲氣瓶 發布:2025-07-15 03:48:10 瀏覽:992
數據解鎖密碼有什麼用 發布:2025-07-15 03:35:27 瀏覽:196