如何在 UNION sql 查询中使用公共变量?
how to use common variable in UNION sql query?
我如何设置单个变量以在 SQL 的 "transactions.amount > 5" 部分中使用,它在下面的 SELECT 语句的两个部分中使用?这样我就可以在查询中设置一次值(例如本例中的 5),然后 UNION ALL 语句的两侧都可以引用它?
顺便说一句,我正在使用 Microsoft Access,所以这是一个访问查询。
SELECT transactions.title, transactions.amount, categories.title
FROM transactions LEFT JOIN (categories RIGHT JOIN [trans-cat] ON categories.ID = [trans-cat].categoryID) ON transactions.ID = [trans-cat].transactionID
WHERE NOT EXISTS (select transactionID from [trans-cat] where transactions.ID = [trans-cat].transactionID ) AND transactions.amount > 5
union all
SELECT transactions.title, transactions.amount, categories.title
FROM transactions INNER JOIN (categories INNER JOIN [trans-cat] ON categories.ID = [trans-cat].categoryID) ON transactions.ID = [trans-cat].transactionID
WHERE transactions.amount > 5
根据@cha 的回复:
如果您对两个条件使用相同的参数名称(即 [threshold]),则需要指定一次参数
我如何设置单个变量以在 SQL 的 "transactions.amount > 5" 部分中使用,它在下面的 SELECT 语句的两个部分中使用?这样我就可以在查询中设置一次值(例如本例中的 5),然后 UNION ALL 语句的两侧都可以引用它?
顺便说一句,我正在使用 Microsoft Access,所以这是一个访问查询。
SELECT transactions.title, transactions.amount, categories.title
FROM transactions LEFT JOIN (categories RIGHT JOIN [trans-cat] ON categories.ID = [trans-cat].categoryID) ON transactions.ID = [trans-cat].transactionID
WHERE NOT EXISTS (select transactionID from [trans-cat] where transactions.ID = [trans-cat].transactionID ) AND transactions.amount > 5
union all
SELECT transactions.title, transactions.amount, categories.title
FROM transactions INNER JOIN (categories INNER JOIN [trans-cat] ON categories.ID = [trans-cat].categoryID) ON transactions.ID = [trans-cat].transactionID
WHERE transactions.amount > 5
根据@cha 的回复:
如果您对两个条件使用相同的参数名称(即 [threshold]),则需要指定一次参数