![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 Authur Kuo ![]()
![]() |
以下是未加上 Customer的狀態 請問該如何改寫比較好??? |
1樓 |
用cursor,大約會長這樣。
本篇文章回覆於2016-06-30 12:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
Authur Kuo ![]() |
很抱歉,關於Daimom的寫法我不是很懂,我如果要處理Customer的數量的話,需要用到DISTINCT嗎? 該在哪裡先撈取? 抱歉,有點混亂,如果可以希望解釋簡單一些,不好意思@@..
本篇文章回覆於2016-06-30 13:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
利用 CROSS JOIN 可以找出每個客戶和日期差異的全部組合
使用交叉聯結 https://technet.microsoft.com/zh-tw/library/ms190690(v=sql.105).aspx
本篇文章回覆於2016-06-30 13:21
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
cursor是指標,有點像是迴圈逐行跑。
步驟是這樣的 1.可以先利用樓上大大的方法擷取出你的customerName成一個表A 2.用while 針對表A一行一行的將customerName取出來後做處理 3.可以將處理完的值塞入一個temptable或其他.. 4.結束
本篇文章回覆於2016-06-30 13:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
抱歉,我記錯cross join的用法了..
我不清楚 pilipala 大大 的作法是不是你要的。 -----修正#4 1.用distinct撈出你customerName的唯一值成一個表A
本篇文章回覆於2016-06-30 13:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
SELECT @count=Count(*) FROM RMA_AGED_DAYS WHERE [Month] = @month and [Year] = @year and [Type] = '90' if @count > 0 begin select @id = Max(Id) FROM RMA_AGED_DAYS where [Type] = '90' UPDATE RMA_AGED_DAYS SET Qty = @90count, Udt = @nowtime WHERE Id = @id end else begin INSERT RMA_AGED_DAYS ([Year], [Month], [Type], Qty, Udt) VALUES (@year, @month, '90', @90count, @nowtime) end 利用 EXISTS 來判斷資料是否存在, 或是改用 Merge 語法來完成這類需求,對於效能是有所幫助的 使用 MERGE 插入、更新,和刪除資料 https://technet.microsoft.com/zh-tw/library/bb522522(v=sql.105).aspx
本篇文章回覆於2016-06-30 14:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
作者回應
Authur Kuo ![]() |
不好意思,針對pilipala大 的方式有些疑問,我目前是用一個#temp 撈出需要處理的CustomerName, 接下來按照Daimom大 得作法我該怎麼做??
本篇文章回覆於2016-06-30 14:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
最有價值解答
Daimom ![]() ![]() |
給樓主一個範例,先將他丟去sql server management裡面跑跑看。
這是將本來的值多加100後 在存去新的table
本篇文章回覆於2016-06-30 16:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓
作者回應
Authur Kuo ![]() |
感謝Daimom 大的範例,獲益良多,只是有一個疑問就是使用cursor的優勢是甚麼? 因為我發現在Store Procedure裡跑 While迴圈也可以跑出資料,是在效能上面有所差別嗎?? 還是說某些狀況下使用cursor會比較好??
本篇文章回覆於2016-07-01 13:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓 | |
11樓 |
[SQL SERVER][Performance]盡量避免使用Cursor
https://dotblogs.com.tw/ricochen/archive/2010/11/09/19323.aspx [SQL SERVER]優化Cursor https://dotblogs.com.tw/ricochen/archive/2015/09/22/153413.aspx
本篇文章回覆於2016-07-01 21:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |