繁体   English   中英

SQL Server CE:如何将两个查询的结果合并为一行?

[英]SQL Server CE : how can I combine results of two queries into one row?

我有两个查询,它们从不同的表返回一个值(并且不以任何方式通过关系连接),并且我试图将两个查询的输出合并到单个行中,但是却遇到语法错误。 这是我正在尝试的:

SELECT
    (SELECT Timestamp As StartDate 
     FROM Events 
     WHERE Description = 'Inserted') AS StartDate,
    (SELECT TOP (1) Timestamp As EndDate 
     FROM DataStore 
     ORDER BY Timestamp DESC) AS EndDate

这就是我要返回的内容:

解析查询时出错。 [令牌行号= 2,令牌行偏移量= 2,令牌错误= SELECT]

查询1自行返回:“ 2015-06-10 11:43:34.000”,查询2返回:“ 2015-06-11 13:59:47.000”

我想返回包含两列的一行,查询1的输出作为“ StartDate”列,查询2的输出作为“ EndDate”列。

与第二个查询不同,第一个查询可能返回2个或多个值。 尝试在第一个查询中也放入TOP (1) ,因为我认为您只是在争取最好的结果。

SELECT
(SELECT TOP (1) Timestamp As StartDate FROM Events WHERE Description = 'Inserted') AS StartDate,
(SELECT TOP (1) Timestamp As EndDate FROM DataStore Order by Timestamp DESC) AS EndDate

请参阅此SQL Fiddle链接以获得我所做的测试。

declare @q1 as varchar(max)
declare @q2 as varchar(max)
SELECT @q1= Timestamp FROM Events WHERE Description = 'Inserted' 
SELECT TOP (1) @q2= Timestamp FROM DataStore Order by Timestamp DESC
select @q1 as StartDate, @q2 as EndDate

SQL CE不支持这种嵌套SELECT语句,因此您必须使用两个SELECT语句并使用UNION或两次调用ExecuteNonQuery。

尝试这个:

SELECT StartDate.StartDate, EndDate.EndDate
FROM
(SELECT Timestamp As StartDate FROM Events WHERE Description = 'Inserted') AS StartDate
CROSS JOIN
(SELECT TOP (1) Timestamp As EndDate FROM DataStore Order by Timestamp DESC) AS EndDate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM