【发布时间】:2023-04-02 03:35:02
【问题描述】:
;WITH cte AS
(
SELECT
Account_id, A_date, amount
FROM
table1
WHERE
A_date IN (SELECT MAX(A_date), Account_id
FROM table1
WHERE Account_id IN (3,4,8,9)
GROUP BY id)
AND Account_id IN (3,4,8,9)
UNION ALL
SELECT
CAST(DATEADD(DAY, -1, DATEADD(MONTH, DATEDIFF(MONTH, 0, A_date)+2, 0)) AS DATE),
Account_id, amount
FROM
cte
WHERE
Account_id IN (3,4,8,9)
AND DATEADD(DAY,-1,DATEADD(MONTH,DATEDIFF(MONTH, 0, GETDATE()) + 1, 0))
)
INSERT INTO table1
SELECT *
FROM cte
WHERE NOT EXISTS (SELECT *
FROM table1 AS t1
WHERE t1.Account_id = cte.Account_id
AND t1.A_date = cte.A_date)
ORDER BY Account_id, A_date DESC
当我运行此查询时,我收到以下错误
选择列表中只能指定一个表达式,当 EXISTS 没有引入子查询
我认为是因为我在 where 子句的子查询中使用了多个 ID 号。谁能告诉我如何解决这个问题?
【问题讨论】:
标签: sql sql-server-2008