目的:解決在sql資料庫計畫作業自動指定資料的統計
過程:查詢sql語句,一步一步解決
結果:達到目標預期
///sql**
declare @moneypay float--宣告變數現金支付
declare @wxpay float
declare @zfbpay float
declare @allpay float
declare @pritnumber int
declare @ordernumber int
declare @couponnumber int
declare @storeid_id int
--查詢出當天數總訂單 對年月日的對比
select * from allorder where datename(yyyy,datecreated)=datename(yyyy,getdate())and datename(mm,datecreated)=datename(mm,getdate())and datename(dd,datecreated)=(datename(dd,getdate())-2)
-- dateadd(day,-2,getdate()) --在當前的時間減去幾天 如getdate()=2019-2-20 17:28,dateadd(day,-2,getdate())=2019-2-18 17:28
--迴圈每個allorder
declare @i int
set @i=1
while @i<5
begin
set @i=@i+1
end
select @i
--獲得查詢出的資料個數
declare @getcount int
select @getcount =count(1) from allorder where datename(yyyy,datecreated)=datename(yyyy,getdate())and datename(mm,datecreated)=datename(mm,getdate())and datename(dd,datecreated)=(datename(dd,getdate())-1)
--迴圈獲取的資料
declare @totalcount int
declare @rownum int
select @totalcount = count(1) from allorder where datename(yyyy,datecreated)=datename(yyyy,getdate())and datename(mm,datecreated)=datename(mm,getdate())and datename(dd,datecreated)=(datename(dd,getdate())-1)
set @rownum = 1
while @rownum <= @totalcount
begin
declare @id int
declare @remarks nvarchar
--查詢指定的行的資料
select top (select @rownum) @id=[id], @remarks=[remarks] from allorder where datename(yyyy,datecreated)=datename(yyyy,getdate())and datename(mm,datecreated)=datename(mm,getdate())and datename(dd,datecreated)=(datename(dd,getdate())-1)
set @rownum = @rownum + 1
endselect @id
--插入資料到daydata
insert into [daydata](guid,isdeleted,remarks,datecreated,daytime,monthtime,yeartime,moneypay,wxpay,zfbpay,allpay,pritnumber,ordernumber,couponnumber,storeid_id)
values (newid(),'true','資料庫生成當天資料',getdate(),datename(dd,getdate()),datename(mm,getdate()),datename(yyyy,getdate()),@moneypay,@wxpay,@zfbpay,@allpay,@pritnumber,@ordernumber,@couponnumber,@storeid_id)
//利用上面的拆分動作,最後結合使用達到統計資料插入。
SQL語句各子句的執行順序
乙個sql會包含很多個子句,在寫sql時,理解sql個部分子句執行的優先順序非常重要,否則可能會導致簡單的sql變成多個巢狀的sql,更可能導致錯誤的返回結果。下面通過乙個例子說明各子句的優先順序 select a,b,count sum c over from t where t.d 1 star...
Oracle動態游標實現動態SQL迴圈遍歷
動態游標可以遍歷動態的表,格式 type 游標型別 is ref cursor 定義乙個動態游標 游標名 游標型別 如果查詢的表的資料不同的,動態變化的,這時候可以用動態游標。需要注意的是,動態游標的定義,在普通儲存過程中 需要放在 is 後面的第一行。動態游標通過 open 游標 for 字串,形...
SQL迴圈語句示例 1
在 sqlserver 資料庫中,迴圈語句是最常用的語句之一,下面就將為您分析sql迴圈語句的例子,供您參考,希望對您有所啟迪。sql迴圈語句 declare i int set i 1 while i 30 begin insert into test userid values i set i ...