请教一个比较复杂的Sql语句的写法
椰果子 2013-12-04 10:36:17 我有5个表,分别是数据源表,数据源输出量表,项目表,项目配置表,和数据表,分别如下:
数据源表Soucre 记录数据源
Sid(主键id) Para(参数) ......
300 ..... ......
301 ..... ......
302 ..... ......
303 ..... ......
数据源输出量配置SourceOutType 记录一个数据源的不同输出量
SOTId(主键id) Sid(数据源id) SType(输出量类型) STPara(参数)
..... 300 1 .....
..... 300 2 .....
..... 300 3 .....
..... 301 1 .....
..... 301 2 .....
..... 302 1 .....
..... 302 2 .....
..... 303 1 .....
..... 303 2 .....
项目表Project
ProjId(主键id) PName(项目名称) PBuildTime(创建时间) ................
1 项目1 2013-11-11 ................
2 项目2 2013-12-12 ................
... ...... ........... ................
项目配置表Config
CfgId(主键id) Pid(项目表id) Sid(输出源id) SType(输出量类型)
71 2 300 1
72 2 302 1
74 2 303 2
数据表SourceData 记录输出源的最新数据
SdId(主键id) Sid(输出源id) SType(输出量类型) SValue(数据值) SendTime(数据时间)
796 300 1 785.4 2013-12-12 12:00:00
795 300 2 736.2 2013-12-12 12:00:00
794 300 3 778.1 2013-12-12 12:00:00
793 301 1 236.7 2013-12-12 12:00:00
792 301 2 222.2 2013-12-12 12:00:00
791 302 1 55.2 2013-12-12 12:00:00
790 302 2 53.8 2013-12-12 12:00:00
789 300 1 785.4 2013-12-12 11:59:59
788 300 2 734.4 2013-12-12 11:59:59
787 300 3 779.2 2013-12-12 11:59:59
786 301 1 236.1 2013-12-12 11:59:59
785 301 2 222.8 2013-12-12 11:59:59
784 302 1 55.5 2013-12-12 11:59:59
783 302 2 54.1 2013-12-12 11:59:59
782 303 1 139.4 2013-12-12 11:59:59
781 303 2 138.1 2013-12-12 11:59:59
由于数据源发送的数据时间是不是固定的,所有有些时间点会没有数据。但是如果有数据的话,每个输出源的几个输出量都会有数据。
我想选择的就是,一项目下配置的输出源和输出类型的最新数据,比如选择项目2的最新数据,应该能选择出来如下结果。
SdId(主键id) Sid(输出源id) SType(输出量类型) SValue(数据值) SendTime(数据时间)
796 300 1 785.4 2013-12-12 12:00:00
791 302 1 55.2 2013-12-12 12:00:00
781 303 2 138.1 2013-12-12 11:59:59