【发布时间】:2019-12-26 12:45:20
【问题描述】:
SELECT
c.customer_Id, SUM(total_amt), DATEDIFF(YEAR, DOB, GETDATE()) as DOB
FROM
Transactions T
INNER JOIN
Customer C ON T.cust_id = C.customer_Id
GROUP BY
c.customer_Id, DATEDIFF(YEAR, DOB, GETDATE())
HAVING
(DATEDIFF(YEAR, DOB, GETDATE()) BETWEEN 25 AND 35)
AND (SELECT tran_date
FROM Transactions
HAVING tran_date BETWEEN DATEADD (DAY , -30, MAX(tran_date)) AND MAX(tran_date))
执行上述代码时出现此错误:
消息 4145,第 15 级,状态 1,第 136 行
在预期条件的上下文中指定的非布尔类型表达式,靠近 ')'
【问题讨论】:
-
请解释您要做什么。样本数据和期望的结果会有所帮助。非工作查询不需要传达此信息。
-
SELECT tran_date ...子查询返回一些数据集,而不是布尔值。也许EXISTS操作员丢失了?但它是不相关的,通常“总是正确的”,并且它使用明确的 GROUP BY。\
标签: sql sql-server