sql 語法細節

2021-06-05 09:07:41 字數 1762 閱讀 8401

一:    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...