SQL语句,写了不少,但一直用的是等于,对于三张表,这边有数据,那边没有,
就会比较麻烦,数据就不全。最开始用穷举解决,很麻烦,现在用左链接省了很多事。
再用存储过程,以前要一天的事(用SQL查出数据,用Excel处理),现在两秒钟就解决了。
过去用三张表(a 、b、c)查询合并成一张表用等于的穷举语句写法:
1、a 有销售、b有销售、c有销售;
2、a有销售、b有销售、c无销售;C对应的字段就用0填充。
3、a有销售、b无销售、c有销售;b对应的字段就用0填充。
4、a有销售、b无销售、c无销售;b、c对应的字段用0填充。
5、a无销售、b有销售、c有销售;a对应的字段就用0填充。
6、a无销售、b有销售、c无销售;a、C对应的字段就用0填充。
7、a无销售、b无销售、c有销售;a、b对应的字段就用0填充。
8、a无销售、b无销售、c无销售;这种情况就可以不用了。
一看就很麻烦,有时还把自己饶晕了。
现在用左链接,写法如下:
1、先把三张表共同的字段取出去掉重复项放进一个临时表;
2、用临时表左链接a表,空值赋值为0;
3、用上面的结果再左链接b表,空值赋值为0;
4、再用上面的结果再左链接C表,空值赋值为0;
再把语句放入过程里,把区域设置为输入参数,在执行过程时直接输入区域,两秒搞定。