2017-06-05 60 views
0

我有一個查詢:找到與存儲過程的學期

SELECT * FROM `commande`: 

id datecreation   motif   tva numero periode 
1 27/02/2017 16:16 Achat marchandise NULL C001 NULL 
9 28/03/2017 14:43 Achat marchandise NULL C002 NULL 
10 28/03/2017 14:47 Achat marchandise NULL C003 NULL 
11 28/04/2017 14:53 Achat marchandise NULL C004 NULL 
12 28/04/2017 14:57 Achat marchandise NULL C005 NULL 
13 28/05/2017 15:00 Achat marchandise NULL C006 NULL 
14 28/05/2017 15:36 Achat marchandise NULL C007 NULL 
15 28/05/2017 16:58 Achat marchandise NULL C008 NULL 
16 28/05/2017 17:11 Achat marchandise NULL C009 NULL 

我想創建一個存儲過程來更新根據「datecreation」每月一列「periode」,「periode」欄目是一學期號,

例如:

if month(datecreation)=4 then periode = 2 

if month(datecreation)=3 then periode = 1 

if month(datecreation)=5 then periode = 2 

我怎樣才能做到這一點感謝

+0

憑什麼是'月= 3'是'4'和5''是''2'和1'? – Utsav

+0

一個學期意味着一年分爲兩部分。四分之一系統意味着四個部分,這更接近您的要求。你能確認你是否想要學期或季度。 – Utsav

+0

如何?第四和第五個月如何作爲periode 2? – Utsav

回答

0

正如我在評論學期系統中提到的分爲2部分。在這種情況下,1月 - 6學期1月和7 - 12學期2.可以實現像下面

update commande 
set periode = 
(floor(month(datecreation)/6) + 1); 

如果你想3個月爲1和月452,那麼你是談到四分之一體系,其中一年分爲四部分。在這種情況下使用

update commande 
set periode = 
(floor(month(datecreation)/4) + 1); 
+0

謝謝! ,有用 – Avi