您的位置:首页 > 数据库

sql 关键字的用法

2014-11-18 23:03 218 查看
coalesce( T.GoodsCode,'0') 若 T.GoodsCode 为NULL 这 用0替换

round(S.SaleEarning,2) 保留两位小数

SUBSTRING(zb.accTime,9,2) 截取字符 从第9个开始截取2个

cast(SUBSTRING('111111111111',9,2) as int) 类似 Convert 强制转化

INSERT INTO "$tableHead$".tb$tableTime$_OperatorMSum(NodeCode ,CounterCode ,OccurDate ,SellOperatorCode)
SELECT distinct B.DeptCode ,coalesce(B.CounterCode,'') CounterCode ,substring(B.accTime,1,8) accTime,coalesce(S.SellOperatorCode,'') SellOperatorCode
FROM "$tableHead$".tb$tableTime$_GiftGrantBill  B
left join "$tableHead$".tb$tableTime$_SaleBill S on B.DeptCode=S.DeptCode and B.CounterCode=S.CounterCode
and B.SaleBillNumber=S.BillNumber

WHERE B.BillNumber = '$billNumber$'and B.DeptCode  ='$nodeCode$'
EXCEPT SELECT NodeCode ,CounterCode ,OccurDate ,SellOperatorCode  FROM "$tableHead$".tb$tableTime$_OperatorMSum;

UPDATE  "$tableHead$".tb$tableTime$_OperatorMSum
SET
SaleMoney= case when $IsCancel$=0 then Round(C.SaleMoney + T.AddMoney,2) else Round(C.SaleMoney - 0,2) end,
SaleCount  =case when  $IsCancel$=0 then C.SaleCount + 1 else C.SaleCount end,
SaleBackMoney=case when $IsCancel$=0 then Round(C.SaleBackMoney,2) else Round(C.SaleBackMoney-T.AddMoney,2) end,
SaleBackCount=case when  $IsCancel$=0 then C.SaleBackCount else C.SaleBackCount+1 end,
SellOperatorCode = T.SellOperatorCode ,
SellOperatorName = T.SellOperatorName
from "$tableHead$".tb$tableTime$_OperatorMSum   C ,
(
SELECT
sum(B.AddMoney )   AddMoney ,
substring(B.accTime,1,8)  AccDate ,B.DeptCode DeptCode ,
coalesce(B.CounterCode,'') CounterCode  ,S.SellOperatorCode  ,S.SellOperatorName,B.IsCancel
FROM "$tableHead$".tb$tableTime$_GiftGrantBill B
left join "$tableHead$".tb$tableTime$_SaleBill S on B.DeptCode=S.DeptCode and B.CounterCode=S.CounterCode
and B.SaleBillNumber=S.BillNumber
WHERE B.BillNumber = '$billNumber$' and B.DeptCode  ='$nodeCode$'
Group By  substring(B.accTime,1,8)  ,B.DeptCode, B.CounterCode ,S.SellOperatorCode ,S.SellOperatorName,B.IsCancel

) T
where   C.NodeCode = T.DeptCode  AND  C.CounterCode =  T.CounterCode
AND   C.OccurDate  =  T.AccDate   AND  C.SellOperatorCode =  T.SellOperatorCode;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: