Re: [SQL ] 當月數量不足,往前抓一個月。
-- 測試資料
select *
into #sample
from (
values
('物料1','鐵',25,convert(date,'2018/3/1')),
('物料1','鐵',0.1,'2018/3/1'),
('物料1','鐵',0.56,'2018/4/11'),
('物料1','鐵',10,'2018/5/12'),
('物料1','鐵',10,'2018/6/25'),
('物料1','鐵',10,'2018/6/30'),
('物料1','鐵',10,'2018/7/30')
) t(partNO,PARAMETER_NAME,Numerical,DATE)
-- 當月標準差
;with tb1 as (
select
partNO,PARAMETER_NAME,
ym = convert(char(6),DATE,112),
stdev = stdev(Numerical),
-- 取得前次月份(lag 用法:https://bit.ly/2Oarh5g )
prev_ym = lag(convert(char(6),DATE,112))
over (partition by partNO,PARAMETER_NAME order by convert(char(6),DATE,112))
from #sample
group by partNO,PARAMETER_NAME,convert(char(6),DATE,112)
)
-- 最終結果
select t1.partNO,t1.PARAMETER_NAME,t1.ym,
stdev = isnull(t1.stdev,stdev(t2.Numerical))
from tb1 t1 left join #sample t2
on t1.partNO = t2.partNO and t1.PARAMETER_NAME = t2.PARAMETER_NAME
and t1.stdev is null and convert(char(6),t2.DATE,112) in (t1.ym,t1.prev_ym)
and datediff(month,t2.DATE,t1.ym + '01') <= 6
group by t1.partNO,t1.PARAMETER_NAME,t1.ym,t1.stdev
/* 說明:
紅色: 原本該月標準差
黃色: 與前次月份合併
藍色: 與前次月份差距不超過半年
*/
※ 引述《carsun00 (永夜)》之銘言:
: 資料庫名稱:MS SQL
: 資料庫版本:14.0.2014.14
: 內容/問題描述:
: 資料需求是本月的數據算不出結果(標準差),
: 自動加前一個月的數據,如果都沒有繼續往前追朔最多半年,
: SQL語法如下,目前只能計算出每個月的資料,
: 想到的解法是資料表內,
: 開一個欄位儲存查詢的次數(1~6),
: 在使用While跑查詢。
: 但這樣會變成會可能須要查詢六次,
: 不知道有沒有比較好的處理方式。
: SELECT
: [PartNo]
: , [PARAMETER_NAME]
: , STDEV([Numerical])
: , CONVERT(CHAR(7), [DATE], 120) AS '月分組'
: FROM
: [dbo].[SAMPLES_Numerical]
: GROUP BY
: [PartNo]
: , [PARAMETER_NAME]
: , CONVERT(CHAR(7), [DATE], 120);
: 謝謝協助m(_ _)m。
: OS:覺得功力薄弱...
: 有點想去上MSSA的70-761..
: 原始資料
: partNO PARAMETER_NAME Numerical DATE
: 物料1 鐵 25 2018/3/1
: 物料1 鐵 0.1 2018/3/1
: 物料1 鐵 0.56 2018/4/11
: 物料1 鐵 10 2018/5/12
: 物料1 鐵 10 2018/6/25
: 物料1 鐵 10 2018/7/30
: 目前sql查詢結果(錯誤)
: 物料1 鐵 0.001685269 3月
: 物料1 鐵 null 4月
: 物料1 鐵 null 5月
: 物料1 鐵 0.001604836 6月
: 期望結果
: 物料1 鐵 0.001685269 3月
: 物料1 鐵 0.001685269 4月 3月&4月計算結果
: 物料1 鐵 0.001685269 5月 4月%5月計算結果
: 物料1 鐵 0.001604836 6月 6月
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.118.82.76 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1563778875.A.2F0.html
※ 編輯: cutekid (122.118.82.76 臺灣), 07/22/2019 15:06:20
推
07/23 09:20,
5年前
, 1F
07/23 09:20, 1F
→
07/23 09:20,
5年前
, 2F
07/23 09:20, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章