繁体   English   中英

SQL 错误(207):列名“BTC”无效

[英]SQL Error (207): Invalid column name 'BTC'

知道为什么此查询返回错误“SQL 错误 (207): Invalid column name 'BTC'”吗?

我只是想在 JOIN 语句之后使用 WHERE 子句

WITH balances AS (
    SELECT 
        UserId,
        Balance,
        CASE
            WHEN CurrencyId = '123' THEN 'BTC'
            WHEN CurrencyId = '456' THEN 'USD'
            WHEN CurrencyId = '789' THEN 'BSV'
            WHEN CurrencyId = '987' THEN 'CAD'
            WHEN CurrencyId = '765' THEN 'ECD'
            WHEN CurrencyId = '543' THEN 'XLM'
            WHEN CurrencyId = '321' THEN 'ETH'
            WHEN CurrencyId = '0123' THEN 'GBP'
            WHEN CurrencyId = '0345' THEN 'BCH'
            WHEN CurrencyId = '0567' THEN 'EUR'
            WHEN CurrencyId = '0789' THEN 'USD as WSD'
        END AS Currency
    FROM "mydb"."dbo"."Balances" balance
    WHERE balance.Balance > 0.01
)
SELECT TOP 500
    curUser.Id,
    curUser.Email,
    balance_btc.Balance AS BTC,
    balance_btc.Currency,
    curUser.LastBalanceSnapshot
FROM "mydb"."dbo"."Users" AS curUser
INNER JOIN balances balance_btc ON balance_btc.UserId = curUser.Id
WHERE balance_BTC.Currency = "BTC";

您似乎在 WHERE 子句中使用了不正确的文本限定符 - 双引号表示标识符,而不是值。 换句话说,您的 WHERE 子句的编写方式是 SQL 服务器试图找到两列之间的相等性,而不是等于值的列。

更改您的代码,使您的WHERE子句显示为WHERE balance_BTC.Currency = 'BTC'; 您应该会发现错误已解决。

暂无
暂无

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

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