[MSSQL]master..spt_values日期頻率增加日期

語意:
假如有幾筆(Row)資料N,而每S天要變成一筆(Row)資料,最長增加到X天
假如有2Row資料,而每3天要變成一筆Row,最多增加60天

select x.id,x.val,x.seq,ret.number,dateadd(day,ret.number,x.dday) as v_date
from (
select 'row1' as id,'myvalue1' as val,222 as seq ,
CONVERT(datetime,'2014/06/06' ) as dday
union all
select 'row2' as id,'myvalue2' as val,111 as seq ,
CONVERT(datetime,'2014/06/03') as dday
)x ,(select n.number from
master..spt_values n
where n.type = 'P'
AND n.number < 60 and n.number <>0 and n.number % 3 =0)ret
order by x.seq,v_date

2筆資料

QueryResult

查詢結果
spt_values

MySQL 使用RowNumber方式

Oracle及MS-SQL都有RowNumber的語法可用

MySQL則需要使用一些技巧

select x.id,x.val,x.seq, @i := @i + 1 as row_number 
from (
select 222 as seq,'row1' as id,'value1' as val from dual 
union all
select 111 as seq,'row2' as id,'value2' as val from dual 
) x,(select @i := 0) temp order by x.seq;

資料

QueryResult

加了Rownumber後

MySQL_RowNumber
如果只是要做分頁效果則使用

limit Start_Row,Page Of Row

limit 10,20

[Csharp]Panel上置換元件UserControl

如果不使用MDI介面,而使用SDI的話,在部份在處理完Form的資訊後,均會另開Form或關閉Form,來進行資料的流程,其實也可以在同一個Form裡,利用自己建立的使用者控制項UserControl切換Switch,只需要在panel.Controls.Add或是panel.Controls.Remove就好了,底下是個簡單的範例。

設定二個按鈕,按下第一個按鈕時顯示第一個UserControl,按下第二個按鈕時則顯示第二個使用者控制項UserControl。

PanelControl1

Read More