select * from
(select a.* ,b.集装箱号,b.规格 from a a join b b on a.作业编号=b.作业编号) bb
where 换单联系 in
( select top 1 换单联系 from
(select a.* ,b.集装箱号,b.规格 from a a join b b on a.作业编号=b.作业编号) cc
where cc.作业编号=bb.作业编号 and cc.抵港日期=bb.抵港日期 and cc.集装箱号=bb.集装箱号
)
(select a.* ,b.集装箱号,b.规格 from a a join b b on a.作业编号=b.作业编号) bb
where 换单联系 in
( select top 1 换单联系 from
(select a.* ,b.集装箱号,b.规格 from a a join b b on a.作业编号=b.作业编号) cc
where cc.作业编号=bb.作业编号 and cc.抵港日期=bb.抵港日期 and cc.集装箱号=bb.集装箱号
)
解决方案 »
- 表中日期字段(不连续)怎样求出相邻两个记录的日期之间的差值
- SQL Server 的存储过程
- 请问我要将本机的SQLServer数据全部导到虚拟主机的SQLServer服务器上应该怎么做?
- 怎样可以同时更新两个SQL的数据库
- 指定字段显示指定内容 紧急求助各位!!
- 为什么SQL2000数据库记录莫名其妙的少?
- sql组合查询的代码中"%"的用途
- 设置时间的存储过程,总是说时间超出范围?
- 急!急!急!急!急!SQL Server 高手请进。。。(高分赠送)
- 关于时间的计算
- 关于ORACLE板块的一个讨论:<<SQLSERVER不能,ORACLE能>>
- ====急求高手:MSSQL中有无如Sql Anywhere中象List功能的一样函数?(内有实例)=====
insert #表1 values('CMTTRADE2003041601','进口','2003.04.17','现代',2)
insert #表1 values('CMTTRADE2003042302','进口','2003.04.24','bb',1)
insert #表1 values('CMTTRADE2003042305','进口','2003.04.24','cc',1)
insert #表1 values('CMTTRADE2003042401','进口','2003.04.24','ff',1)
insert #表1 values('CMTTRADE2003042401','进口','2003.04.24','ee',1)
insert #表1 values('CMTTRADE2003050102','进口','2003.05.01','dd',1)
create table #表2(作业编号 varchar(100),集装箱号 varchar(100),规格 varchar(10),型号 varchar(10))
insert #表2 values('CMTTRADE2003041601','HDMU4218707','40''','普通箱')
insert #表2 values('CMTTRADE2003042302','HDMU4596461','40''','普通箱')
insert #表2 values('CMTTRADE2003042305','HDMU2197441','20''','普通箱')
insert #表2 values('CMTTRADE2003042401','HDMU2197441','40''','普通箱')
insert #表2 values('CMTTRADE2003042401','HDMU2197441','20''','普通箱')
insert #表2 values('CMTTRADE2003050102','HDMU4232726','40''','普通箱')select max(作业编号) 作业编号 from #表2 where 作业编号 in( select 作业编号 from #表1 where 抵港日期='2003.04.24') group by 集装箱号select * from #表1 where 作业编号 in(select max(作业编号) from #表2 where 作业编号 in( select 作业编号 from #表1 where 抵港日期='2003.04.24') group by 集装箱号)
go
drop table #表2,#表1
2.交叉表
create table jiaocha_611(name varchar(5),subject nchar(4),score numeric(3,0)) go
insert into jiaocha_611
values('kf','语文','60')
go不确定列的交叉表:
declare @sql varchar(8000)
set @sql = 'select name,'
select @sql = @sql + 'sum(case subject when '''+subject+'''
then score else 0 end) as '''+subject+''',' from (select distinct subject from administrator.jiaocha_611) as a
select @sql = left(@sql,len(@sql)-1) + ' from administrator.jiaocha_611 group by name'
exec(@sql)
go
-----------------
主表的数据多了一条CMTTRADE2003042401 进口 2003.04.24 ee 1应该没有这一条数据-----------------------希望达到的效果是:
表一和表二关联之后,显示的记录数应该是五条,同一天抵港的不同作用编号,但是使用的是一个集装箱的记录应该只是显示一条
1 CMTTRADE2003041601 德国BEHR海运03L15 进口 2003.04.17 现代 2 1 HDMU4218707 40' 普通箱 1
2 CMTTRADE2003042302 德国海拉海运03L39 进口 2003.04.24 1 1 HDMU4596461 40' 普通箱 2
3 CMTTRADE2003042305 德国海拉海运03L40 进口 2003.04.24 1 1 HDMU2197441 20' 普通箱 3
4 CMTTRADE2003042401 德国HUS海运03L10 进口 2003.04.24 1 1 HDMU2197441 40' 普通箱 4
4 CMTTRADE2003042401 德国HUS海运03L10 进口 2003.04.24 1 2 HDMU2197441 20' 普通箱 5
5 CMTTRADE2003050102 德国海拉海运03L44 进口 2003.05.01 1 1 HDMU4232726 40' 普通箱 6