在写sql 的时候,我们有时候,只需要拿出某些特定的数据,去跟一些表进行关联,但是如果直接通过表关联的话,可能拿到

的数据有冗余,这个时候,我们就可以巧用临时表,讲自己需要的特定数据筛选出来,然后组成临时表,在用系统表去关联它,这样

可能就能得到我们想要的数据,这样操作,有意想不到的效果。

SELECT DISTINCT A.[TYPE],
SUM(A.GROSS_WEIGHT) AS GROSS_WEIGHT ,
SUM(A.VOLUME) AS VOLUME ,
IC.IN_CUSTOMS_DECLARTION_NO
FROM WMS_ASN AS A
INNER JOIN (
SELECT DISTINCT ASN_ID,IN_CUSTOMS_DECLARTION_NO
FROM WMS_CUSTOMS_IN
GROUP BY ASN_ID,IN_CUSTOMS_DECLARTION_NO
) AS IC
ON A.KID=IC.ASN_ID
WHERE A.MDF_TIME BETWEEN dateadd(year,-2,getdate()) and dateadd(year,-1,getdate())
GROUP BY A.[TYPE],IN_CUSTOMS_DECLARTION_NO

如上述sql,通过SELECT DISTINCT ASN_ID,IN_CUSTOMS_DECLARTION_NO
FROM WMS_CUSTOMS_IN
GROUP BY ASN_ID,IN_CUSTOMS_DECLARTION_NO

查出需要的数据,去掉重复数据后,再跟数据表进行关联,这样既能得到自己想要的数据,又能去掉重复列。

[BILL WEI] SQL 巧用临时表的更多相关文章

  1. [BILL WEI]SQL 如何将查询到的列作为表名去查询数据

    我们在做sql查询的时候,有时候需要将查询的列作为表名,去引用,然后再次查询 declare @table_name varchar(20) select @table_name=table_name ...

  2. [BILL WEI]SQL 存储过程学习

    --查看数据库exec sp_databases ;--查看表exec sp_tables ;--查看列exec sp_columns WMS_ASN;--查看索引exec sp_helpindex ...

  3. sql Server中临时表与数据表的区别

    sql server 中临时表与数据表的区别 1.如何判断临时表和数据表已生成 --如何判断临时表是否已创建--- if exists(select * from tempdb..sysobjects ...

  4. [BILL.WEI]stimulsoft reports ,巧用关系,简化sql语句

    stimulsoft reports关系的2大有点 1,跨数据库. 在做报表的时候,我们可能会从不同的数据库中取数据,这个时候,我们就可以利用关系 通过关联的字段,将2者关联起来,然后就可以在报表里面 ...

  5. [BILL WEI]一些经常用到的SQL函数

    截取时间 --convert可以截取特点值 convert(varchar(10),getdate(),120) 截取2012-11-11 11:11:11 前10位,得到日期2012-11-11

  6. sql server之临时表

    一.临时表介绍 临时表在运行被创建的,虽说它的名字叫做临时表,可是对它的操作和我们平时操控表的操作基本一样, 比如最简单增.删.改.查等等.但是,需要注意的是临时表的创建是有范围限制的. 二.临时表分 ...

  7. 补充一下sql server(临时表)

    说明:(1).临时表其实是放在数据库tempdb里的一个用户表:(2).TempTableName必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间 ...

  8. [转]SQL Server中临时表与表变量的区别

    [转]http://blog.csdn.net/skyremember/archive/2009/03/05/3960687.aspx 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是 ...

  9. 【S】SQL SERVER检查临时表占用空间情况

    --检查已标记为需要删除的临时表select * from T_BAS_TEMPORARYTABLENAME; --所有系统创建的临时表及视图SELECT * FROM sys.tables WHER ...

随机推荐

  1. SharePoint Client Add Folder,file to Library

    public void UploadDocument(string siteURL, string documentListName, string documentListURL, string d ...

  2. centos 6.5 x64编译有python的vim7.4

    wget ftp://ftp.vim.org/pub/vim/extra/vim-7.2-extra.tar.gzwget ftp://ftp.vim.org/pub/vim/extra/vim-7. ...

  3. Sublime Text 3 代码格式化插件推荐 CodeFormatter

    CodeFormatter CodeFormatter has support for the following languages: * PHP - By PHP_Beautifier* Java ...

  4. WPF 渐隐渐现切换背景图片

    最近学习WPF,尝试着自己做一些小玩意,也遇到了一些问题,于是整理记录以便日后查阅. 我们都知道WPF可以实现一些很炫的效果,然而有时候为达到这个目的却并不是一件很容易的事情.比如:在软件中我希望能够 ...

  5. C语言之广度优先算法

    广度优先算法又称宽度优先搜索,是一种简便的图的搜索算法之一.搜索方式大致是这样的: 直到搜索到目标结点(结点就是那些圆球球,其中有一个或者多个是目标结点)或者搜完了整个图都没找到目标结点就停止搜索. ...

  6. jdbc 连接Oracle informix Mysql

    package com.basicSql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Res ...

  7. vs2013 上传碰到的问题:“输入的不是有效的 Base-64 字符串 ”

    action 代码: [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create( ImageStoreModels images ...

  8. UML_时序图画法

    UML建模之时序图(Sequence Diagram) 一.时序图简介(Brief introduction) 二.时序图元素(Sequence Diagram Elements) 角色(Actor) ...

  9. Oracle数据库安装完成之后的启动操作

    由于是菜鸟,在 完成Oracle数据库的安装之后,不知道该怎么启动.在经过一番折腾之后明白了其中的一些道理,总结如下: 其实Oracle数据库和Mysql数据库的启动都是相同的原理. Mysql数据库 ...

  10. 让Eclipse使用新版本的JRE

    更新到新的 Mac OS X 再打开Eclipse 编译程序会报错, Exception in thread "main" java.lang.UnsupportedClassVe ...