Sql server 2008 SQLServer选择";无效的列名";但列是存在的
这可能很简单,但我完全被难住了。这是我第一次进入SQLSever,我有一个简单的查询,如下所示Sql server 2008 SQLServer选择";无效的列名";但列是存在的,sql-server-2008,Sql Server 2008,这可能很简单,但我完全被难住了。这是我第一次进入SQLSever,我有一个简单的查询,如下所示 SELECT c.ClientID, c.FirstName, c.LastName, FORMAT(pm.date, 'd', 'en-US'), 'Payment' AS 'Description', FORMAT(0, 'C', 'en-US') AS 'Fee', FORMAT(pm.amount, 'C', 'en-US') AS 'P
SELECT
c.ClientID,
c.FirstName,
c.LastName,
FORMAT(pm.date, 'd', 'en-US'),
'Payment' AS 'Description',
FORMAT(0, 'C', 'en-US') AS 'Fee',
FORMAT(pm.amount, 'C', 'en-US') AS 'Paid',
'WIP' AS 'Payment Type'
FROM dbo.payments_made pm
LEFT JOIN dbo.clients c
ON c.ID = pm.ClientID
LEFT JOIN dbo.payment_types pt
ON pm.PaymentType = pt.ID
WHERE pm.business = 7
执行此查询时,我得到以下结果:
但是,查看表定义,ClientID列实际上是存在的。看这里
我对正在发生的事感到困惑。应该很简单。任何帮助都将不胜感激。您的客户ID位于客户端表的Paymentmade表中,它只是命名为ID(基于您的加入) 您需要将ClientID更改为ID或更改c。给下午 因此:
阅读下面的答案。
ClientID
列存在于payments\u made
表中,而不是clients
表中。在clients
表中,匹配的列是ID
。哇,有时候我觉得我离树太近了,连树枝都看不见。:-)非常感谢。我一直在努力寻找SQL中的错误点。有点尴尬,但我很感激!
SELECT c.ID
// or
SELECT pm.ClientID