SQL语句坚行转横列的一种方法
库位 货物编号 库存数
1 0101 50
1 0102 60
1 0103 50
2 0101 90
2 0103 100
2 0111 30
3 0101 120
3 0102 110
4 0101 11
只列出表中库位为1、2、3的数据,格式如下:
货物编号 库位1 库位2 库位3
0101 50 90 120
0102 60 110
0103 50 100
0111 30
请问用一句sql语句怎么实现?
select a.货物编号,sum(b.库存数),sum(c.库存数),sum(d.库存数)
from stable a
left join (select 货物编号, 库存数 from stable where 库位=1)b on a.货物编号=b货物编号
left join (select 货物编号, 库存数 from stable where 库位=2)c on a.货物编号=c。货物编号
left join (select 货物编号, 库存数 from stable where 库位=3)c on a.货物编号=d。货物编号
group by a.货物编号
相关文档:
首先,我们看看exists和in的效率问题,这里我只说明一种测试语句
set statistics io on
sqlstatement
set statistics io off、
或者
set statistics time on
sqlstatement
set statistics time off
从studio里面的消息可以看出问题,我引用网上的一些准则http://www.cnblogs.com/diction/arch ......
第一范式:确保每列的原子性.
如果每列(或者每个属性)都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式.
例如:顾客表(姓名、编号、地址、……)其中"地址"列还可以细分为国家、省、市、区等。
第二范式:在第一范式的基础上更进一层,目标是确保表中的每列都和主键相关.
如果一个关系满足 ......
原文:http://www.blogjava.net/Unmi/archive/2009/01/05/249956.html
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法:
1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中
2. 建立数据库间的 dblink,然后用 create table B as select * from A ......
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
CR ......