目錄
常用資料庫公式 前言
一、sqlsever
本文記錄報表開發過程中各個資料庫語言常用公式,以便復用。
1.常用sql
--1.中文月份轉化
select
case right(year_mon,2)*1
when 1 then '一'
when 2 then '二'
when 3 then '三'
when 4 then '四'
when 5 then '五'
when 6 then '六'
when 7 then '七'
when 8 then '八'
when 9 then '九'
when 10 then '十'
when 11 then '十一'
else '十二' end as assis_months
from table
--2.保留兩位小數
select convert(decimal(18,2),sum(plan_cost)) as plan_cost from table
select convert(varchar,getdate(),120) as '當前時間'--"2020-01-01 02:01:02"
select convert(char(7),getdate(),120)---2020-09
--4.返回當月/上月/去年
convert(varchar(100),dateadd(month,0,concat(year_mon,'-01')), 23) as this_mon
convert(varchar(100),dateadd(month,-1,concat(year_mon,'-01')), 23) as last_mon
convert(varchar(100),dateadd(month,-12,concat(year_mon,'-01')), 23) as last_year
--5.計算同比、環比需要使用到**自關聯時時間的簡便寫法,可避免複雜的時間轉化
tablea.year*12+month*1 = tableb.year*12+month*1-12
2.儲存過程
--1.含引數的儲存過程
--本段不包含引數為空則選擇全部的寫法
drop procedure pro_cost_follow;--刪除儲存過程
execute pro_cost_follow '2020','01'--執行含引數的儲存過程
create procedure pro_cost_follow
@yyear char(4),
--@mon char(2),
@pro_id char(128)
asbegin
--set nocount on
delete from
fill_pro_cost_details
where left(year_mon,4)=@yyear
and fa_acccode='acc200000'
--and (right(year_mon,2)=@mon)
and (pro_id=@pro_id);
insert into fill_pro
(year_mon,pro_id,fa_acccode,chil_accname,plan_cost,actu_cost,update_date,update_user,update_date_proc)
select
fill_finance_account_act.dyear+'-'+fill_finance_account_act.dmonth as year_mon,
fill_finance_account_act.pro_name as pro_id,
'acc200000' as fa_acccode,
acc_name as chil_accname,
fill_finance_account_bdg.back_budget/12 as plan_cost,
back_actual as actual_cost,
getdate() as update_date,
'procedure' as update_user,
getdate() as update_date_proc
from fill_finance_table1
left join fill_finance_account on fill_finance_account_act.acc_id=fill_finance_account.acc_id
left join fill_finance_account_bdg on fill_finance_account_bdg.acc_id=fill_finance_account_act.acc_id and fill_finance_account_bdg.dyear=fill_finance_account_act.dyear
and fill_finance_account_bdg.pro_name=fill_finance_account_act.pro_name
and fill_finance_account_act.dyear=fill_finance_account_bdg.dyear
where fill_finance_account.parent_id='23b2a06b94f944e493dd2daa4bc74293'
and fill_finance_account_act.dyear=@yyear
--and (fill_finance_account_act.dmonth=@mon)
and fill_finance_account_act.pro_name=@pro_id;
select 1 ;
end
MYSQL資料庫常用操作記錄
修改字段型別 alter table tablename modify colname coltype 如 alter table user modify uname varchar 100 default null comment 使用者名稱 新增字段 alter table tablename ...
國產達夢資料庫常用記錄
命令 disql conn 輸入賬號密碼 示例語句 create table dmhr.address addressid int identity 1,1 primary key,address1 varchar 60 not null,address2 varchar 60 city varch...
資料庫常用面試題 記錄
mysql常見的兩種儲存引擎 mylsam和innodb 事務 是由一組sql語句組成的邏輯處理單元 為了達到上述事務特性,資料庫定義了幾種不同的事物隔離級別,如下 mysql鎖分為表級鎖和行級鎖 選取最實用的字段屬性,盡可能減少字段寬度,盡量吧字段設定notnull 例如省份 性別 最好使用enu...