一: left join (select a.mp_id, a.pc_id, sum(cap_plan_qty) as preplancumqty
from #master_plan_pc a
where a.cap_plan_date < '''+@startdate+''' and a.mp_id = ''' +@mp_id+'''
group by a.mp_id, a.pc_id) as pre
如上圖所示:若
sum(cap_plan_qty*bb.qty) *cc.qty
那麼分組就應該新增cc.qty 否則會報錯:ambiguous column name error
group by a.mp_id, a.pc_id,cc.qty
二:
select m.mp_sku_id,round(isnull(sum(o_qty.qty * m.qty * cc.bom_qty),0),0) as ioq_qty
from #ok_qty o_qty
join mp_pc_header mp_h
on o_qty.salesid = mp_h.ax_so_num and o_qty.itemid = mp_h.ax_bom_000_level
join mp_sku_mix m on mp_h.mix = m.mix
join mp_sku_sub_cap cc on cc.mp_sku_id = m.mp_sku_id and cc.do_plan_view = ''on''
group by m.mp_sku_id
round()、isnull() 最好不用再join連線中(^_^)
三 :往臨時表中插入資料,以及dateadd()函式的使用
insert #master_plan_pc
select a.[mp_id] ,[pc_id] ,dateadd(week, -b.time_buffer, [cap_plan_date]) ,[cap_plan_qty] ,a.[last_updated_date] ,a.[last_updated_user] ,[overwrite_user]
from mp_master_plan_pc_customer a
join mp_header b on a.mp_id = b.mp_id
where a.mp_id = @mp_id
四:插入帶有預設值的資料
create table vet(
id int primary key identity(1,1),
name varchar(30) not null,
age int not null,
masterid int default (0),-- 設定預設值為0
species varchar(30) not null
)insert into vet values('tally',1,0,'cat')
insert into vet(name,age,species) values('jlly',1,'dog')--, 省略有預設值的字段
insert into vet(name,age,masterid,species) values('fmmay',1,1,'dog')-- 加上有預設值的字段,並輸入對應的值.
select * from vet
Mybatis中sql語句學習,語法細節記錄
a param註解的作用是給引數命名,引數命名後就能根據名字得到引數值 b mybatis中的sql語句中的 浩和 號要用轉義字元 和 c mysql order by case when 排序的用法 d usegeneratedkeys 引數只針對 insert 語句生效,預設為 false。當設...
DTD約束語法細節
一 dtd約束語法細節 一 元素定義 在dtd文件中使用element宣告乙個xml元素,語法格式如下所示 元素型別可以是元素內容 或型別 如為元素內容 則需要使用 括起來,如 如為元素型別,則直接書寫,dtd規範定義了如下幾種型別 empty 用於定義空元素,例如 any 表示元素內容為任意型別。...
LeetCode Lisp語法解析(細節處理)
給定乙個類似 lisp 語句的表示式 expression,求出其計算結果。表示式語法如下所示 表示式可以為整數,let 語法,add 語法,mult 語法。表示式的結果總是乙個整數。整數可以是正整數 負整數 0 let 語法表示為 let v1 e1 v2 e2 vn en expr 其中 let...