已知
tblequipment裝置表
tblrequest請求表
jctrequesteqpt請求-裝置關聯中間表
目的:查詢根據某欄位(例如部門)查詢某年每月和上月請求數量,得出每月增長率,
select e.departmentid, datepart(month ,r1.requestdate) as month,count(distinct r1.id) as now,count(distinct r2.id) as pre
from tblrequest r1
left join jctrequesteqpt re on re.requestid =r1.id
left join tblequipment e on e.id =re.equipmentid
left join
(select sr.id id,sr.requestdate,sr.requesttype,e.departmentid
from tblequipment e
left join jctrequesteqpt sre on sre.equipmentid = e.id
left join tblrequest sr on sr.id =sre.requestid
) r2
on r1.requesttype =r2.requesttype
and datepart(month,r1.requestdate) = datepart(month ,r2.requestdate)+1
and datepart(year,r1.requestdate) = datepart(year ,r2.requestdate)
and r2.departmentid =e.departmentid
where r1.requesttype=1 and datepart(year,r1.requestdate)=2019 and re.requestid is not null and re.equipmentid is not null
group by datepart(month ,r1.requestdate) ,e.departmentid
得到資料:
經理看到後,說太複雜,以後別人維護起來不太好整,用分步查詢,先查乙個月 再查上乙個月,得到資料後,進行匹配再封裝。
我就*了*了,**複雜了,三個join,乙個臨時表的分組查詢,
乙個查詢就得到目標資料了,為什麼要分開查 ,再去迴圈封裝。
太陽!!
C 複雜的必要性是為什麼?為什麼說C 太複雜?
可以輕易的找出許多文獻說明c 太複雜了,例如學習c 的書籍的厚度。這樣以至於c 的設計者bjarne都曾懷疑具有類的c是不是已經太龐大了。因為,總有大量對語言的新特性的要求 但是c 只在被孤立看待的時候,才會覺得複雜性。設計任何一門語言都是有背景的。c 面向的是這樣的特定使用者 雖然人們都希望有簡單...
SQL語句太複雜,怎麼優化
一 檢視和儲存過程的深度 檢視和儲存過程能夠抽象出一些業務邏輯,簡化設計,是很推薦的做法。但是如果在引用檢視和儲存過程時不加注意,檢視套檢視,儲存過程嵌儲存過程,最後巢狀上四五層,那複雜度累積起來,可能會超出你想象。對sql的優化,也是很嚴重的考驗。所以在引用他們的時候,也要考慮累積的複雜度 二 聯...
別把事情弄的太複雜
程式設計序編了有幾年了,感覺程式設計師就是喜歡把簡單的事情搞的複雜化,今天發生的事情也許就證明了這個觀點。老婆學校的機房裝了flash mx,我看了看版本,發現版本是6.0的,結果遇到了乙個現象,影響了教學,就是如果在區域網上開啟多台機器,系統就會警告說發現乙個註冊號在多個機器上使用,然後flash...