最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
sql 多表联合查询
时间:2010-09-06 编辑:简简单单 来源:一聚教程网
关于sql 多表联合查询方法很多,我们今天就来讲一下关于sql多表查询的用法与实例代码,一般会用到select * from (select ) union 来操作。
select 类型,sum(合计金额) from
(select 商品名称,数量,日期,类型,合计金额 from 出库表
where 日期 > '2010-5-5 00:00:00'
union
select 商品名称,数量,日期,类型,合计金额 from 入库表
where 日期 > '2010-5-5 00:00:00'
union
select 商品名称,数量,日期,类型,合计金额 from 销售表
where 日期 > '2010-5-5 00:00:00')
group by 类型
下面来看看实例
三个表
收费表
id flowid totall
1 k1 3000
详细表
id flowid pid num
1 k1 1 2000
2 k1 2 1000
付款方式表
id pname
1 现金
2 支票
3 刷卡
create table pay(id int,flowid varchar(10),totall int)
insert into pay select 1,'k1',3000
create table detail(id int,flowid varchar(10),pid int,num int)
insert into detail select 1,'k1',1,2000
insert into detail select 2,'k1',2,1000
create table mode(id int,pname varchar(10))
insert into mode select 1,'现金'
insert into mode select 2,'支票'
insert into mode select 3,'刷卡'
declare @sql varchar(8000)
set @sql=''select @sql=@sql+',['+pname+']=sum(case b.pid when '+rtrim(id)+' then num else 0 end)'
from modeset @sql='select a.id,a.flowid,a.totall'+@sql+' from pay a,detail b where a.flowid=b.flowid group by a.id,a.flowid,a.totall'
exec(@sql)
结果:
id flowid totall 现金 支票 刷卡
1 k1 3000 2000 1000 0
-
上一个: sql取重复记录 字段值最大的一条记录
-
下一个: sql 字符串连接函数
相关文章
- PostgreSQL FULL JOIN 多表联合查询 05-22
- sql 子查询、多表查询、联合查询方法 06-03
- MySQL登录、访问及退出操作解析 10-18
- sql语句 update字段null不能用is null问题解析 09-28
- SQL Server ISNULL 不生效原因及解决分析 09-28
- 关于if exists的用法及说明分析 09-28