Sql server 查询和子查询有问题:SQL子查询返回的值超过1
下面是我试图运行的内容,但出现了一个错误。有什么想法吗Sql server 查询和子查询有问题:SQL子查询返回的值超过1,sql-server,Sql Server,下面是我试图运行的内容,但出现了一个错误。有什么想法吗 SELECT Client_Account_Name, ( select Distinct t1.Contact_email as temp3 from Order_Log_SFDC t1 inner join ( select max(Event_Date_Time) Event_Date_Time, Client_Account_Name
SELECT
Client_Account_Name,
(
select Distinct t1.Contact_email as temp3
from Order_Log_SFDC t1
inner join
(
select max(Event_Date_Time) Event_Date_Time, Client_Account_Name
from Order_Log_SFDC
group by Client_Account_Name
) t2 on t1.Client_Account_Name = t2.Client_Account_Name
and t1.Event_Date_Time = t2.Event_Date_Time
) as Email,
MIN(Source) as source,
SUM(Final_Quote) as Total,
MIN(Event_Date_Time) AS min_date,
Max(Event_Date_Time) as max_date,
count(Distinct Event_Date_Time) as numOrders
FROM Order_Log_SFDC
Group By Client_Account_Name
这就是错误:
SQL错误[512][21000]:子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。
SQL错误[512][21000]:子查询返回了多个值。
当子查询在=、!=、=或者当子查询用作表达式时。
SQL错误[512][21000]:子查询返回了多个值。
当子查询在=、!=、=或者当子查询用作表达式时。
SQL错误[512][21000]:子查询返回了多个值。
当子查询后跟=、!=、时,不允许这样做= 或者当子查询用作表达式时。
子查询返回了多个值。当子查询在=、!=、=或者当子查询用作表达式时。
未声明游标 像这样试试
SELECT
Client_Account_Name,
Email = CONVERT(VARCHAR(200), SUBSTRING(MAX(CONVERT(BINARY(8), Event_Date_Time) + CONVERT(VARBINARY(200), Contact_email)), 9, 200)),
source = MIN(Source),
Total = SUM(Final_Quote),
min_date = MIN(Event_Date_Time),
max_date = MAX(Event_Date_Time),
numOrders = COUNT(DISTINCT Event_Date_Time)
FROM
Order_Log_SFDC
GROUP BY
Client_Account_Name;
大家好,欢迎来到SO。考虑到这些错误消息,我猜您正在使用sql server?在标记为mysql sql server时必须小心。此错误是因为有一个子查询作为列。如果该子查询返回的行数超过1行,则引擎不知道如何处理它。不太清楚为什么这里有三个查询都在同一个表中。这是一个很好的开始。非常感谢。不过我还有一个问题。我试图将两个具有相同列的表合并到一个临时表中,然后从合并后的数据中得到一个结果,但得到一个错误,即“无效的对象名##t”,这意味着您试图引用一个尚未创建或已删除的全局临时表。我只是通过更新我的原始帖子上传了我正在使用的代码,因为它太长,无法作为评论发布。我正在创建临时表,只将其放到最后,但由于某些原因,代码会运行一段时间,然后失败。在得到答案后,请不要更改问题的基本原理。请用你的新问题创建一个新的线程。有意义!非常感谢。
SELECT
Client_Account_Name,
(
SELECT TOP 1 Contact_email
FROM Order_Log_SFDC t2
WHERE t2.Client_Account_Name = t1.Client_Account_Name
ORDER BY Event_Date_Time DESC
) As Email,
MIN(Source) as source,
SUM(Final_Quote) as Total,
MIN(Event_Date_Time) AS min_date,
Max(Event_Date_Time) as max_date,
count(Distinct Event_Date_Time) as numOrders
FROM Order_Log_SFDC t1
Group By Client_Account_Name