我仍然很新,SQL并且无法在这里找到答案...我应该写一个SELECT声明,returns 4 columns from 3 tables使用aliases然后将相关名称分配给表...但我得到一个error关于WHERE条款,我不是非常肯定join3个表如何获得我正在寻找的结果.此外,它没有指定JOIN要执行的类型.
这是我的代码:
SELECT VendorName AS [Vendor], InvoiceDate AS [Date], InvoiceNumber AS [Number], AccountItemDescription AS [Description]
FROM Vendors AS v JOIN Invoices AS i
ON v.VendorID = i.InvoiceID
JOIN InvoiceLineItems AS l JOIN GLAccounts AS g
WHERE l.InvoiceLineItems = g.GLAccounts
ORDER BY Vendor, Description;-- Unfinished
Run Code Online (Sandbox Code Playgroud)
得到此错误:
Msg 156,Level 15,State 1,Line 6关键字'WHERE'附近的语法不正确.
任何提示将非常感谢...
在格式化代码时要小心谨慎.每个人都join应该有一个on条款.你错过了他们InvoiceLineItems和GLAccounts加入.
此外,您的on子句通常会将一个表的主键与另一个表中的外键相关联; 加入Vendors到Invoices由等同vendorID于invoiceID不会给你准确的结果.这些ID没有直接关联.您想要vendorID从一个表链接到另一个表vendorID.我不确定你的田地是如何命名的; 它可能是i.vendorID = v.vendorID或者它可能是类似于i.vendorID = v.id.你的其他连接遵循相同的模式.
你最终会得到这样的东西:
SELECT VendorName AS [Vendor],
InvoiceDate AS [Date],
InvoiceNumber AS [Number],
AccountItemDescription AS [Description]
FROM Vendors AS v
JOIN Invoices AS i ON i.VendorID = v.VendorID
JOIN InvoiceLineItems AS l ON l.InvoiceID = i.InvoiceID
JOIN GLAccounts AS g ON l.GLAccountID = g.GLAccountID
ORDER BY Vendor, Description;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |