求SQL语句 两表的连接查询的竖排日期编程横排日期,而且能够查询其它列的结果
求SQL语句 两表的连接查询的竖排日期编程横排日期,并且能够查询其它列的结果
最终要显示的样子
目前查询到的样子
目前的语句:SELECT ImageLengthAverageTable.PerformStartDate, CameraTable.TwoCode, ImageLengthAverageTable.ImageLiFengAverage
FROM ImageLengthAverageTable LEFT OUTER JOIN CameraTable ON ImageLengthAverageTable.CameraGuid = CameraTable.guid
WHERE (ImageLengthAverageTable.PerformStartDate>='2015-08-01') AND (ImageLengthAverageTable.PerformStartDate<='2015-08-31')
表创建语句:
第一张表:
CREATE TABLE [dbo].[CameraTable](
[CameraID] [int] IDENTITY(1,1) NOT NULL,
[guid] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[TwoCode] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_CameraTable] PRIMARY KEY CLUSTERED
(
[CameraID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
第二张表:
CREATE TABLE [dbo].[ImageLengthAverageTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[PerformStartDate] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[CameraGuid] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[ImageLiFengAverage] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[ImageData] [image] NULL,
CONSTRAINT [PK_ImageLengthAverageTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
补充下 第一张表的guid和第二章表的CameraGuid对应的。
------解决思路----------------------
最终要显示的样子
目前查询到的样子
目前的语句:SELECT ImageLengthAverageTable.PerformStartDate, CameraTable.TwoCode, ImageLengthAverageTable.ImageLiFengAverage
FROM ImageLengthAverageTable LEFT OUTER JOIN CameraTable ON ImageLengthAverageTable.CameraGuid = CameraTable.guid
WHERE (ImageLengthAverageTable.PerformStartDate>='2015-08-01') AND (ImageLengthAverageTable.PerformStartDate<='2015-08-31')
表创建语句:
第一张表:
CREATE TABLE [dbo].[CameraTable](
[CameraID] [int] IDENTITY(1,1) NOT NULL,
[guid] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[TwoCode] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_CameraTable] PRIMARY KEY CLUSTERED
(
[CameraID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
第二张表:
CREATE TABLE [dbo].[ImageLengthAverageTable](
[ID] [int] IDENTITY(1,1) NOT NULL,
[PerformStartDate] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[CameraGuid] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[ImageLiFengAverage] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[ImageData] [image] NULL,
CONSTRAINT [PK_ImageLengthAverageTable] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
补充下 第一张表的guid和第二章表的CameraGuid对应的。
------解决思路----------------------
WITH t AS (
SELECT DATEPART(hour,imagelengthaveragetable.performstartdate) [hour],
cameratable.twocode,
imagelengthaveragetable.imagelifengaverage
FROM imagelengthaveragetable
LEFT JOIN cameratable
ON imagelengthaveragetable.cameraguid = cameratable.guid
WHERE (imagelengthaveragetable.performstartdate >= '2015-08-01')
AND (imagelengthaveragetable.performstartdate < '2015-09-01')
)
SELECT twocode,
[8] AS [8:00:00],
[9] AS [9:00:00],
...
[17] AS [17:00:00]
FROM t
PIVOT (AVG(imagelifengaverage)
FOR [hour] IN ([8],[9],[10],[11],[12],[13],[14],[15],[16],[17])
) p