表的一些需求:
数值计算(用到sum()、Convert(decimal(18,0),@column))一个是计算合数,一个是四舍五入保留两位小数
过滤功能——产品代码、客户代码、日期、币别
1、首先是基础的表连结——思考left join 和inner join的区别。
一般没什么关联的,直接连接的可以用left join ,注意这个没控制好,容易出现异常(毕竟人家的关系不是很牢固)
2、涉及到的有可选参数查询和必选参数查询的问题——解决的方案是:添加条件 or len(参数) =0)
重点是理解好:
where (t I.FNumber >= '*Producto*'or len'*ProductNo*’) =0)
AND (t_I.FNumber#ProductNo#'or len('#ProductNo#') =0) -- 后面的len('#ProductNo#') =0是决定着参数是否可以是可选的而不是必选的。
AND (t_o.FNumber>='*CustNo*' or len('*CustNo*') =0)
AND (t o.FNumber<='#CustNo#'or len('#CustNo#') =0)
and(t C.FNumber='@FCurrencwNumber@' OR len( 'FCurrencwNumberg') = 0)
AND (ICS.FDate>='********' OR len('********')=0 )
and(InS.Fate<=“########“OR len('########')= 0)
3、其他的都还好,没啥了,就是第一次操作都有点慢。还好这个表获取的数据没有那么麻烦!