我必须使用一个函数创建一个视图,该函数将在成百上千列之间用逗号格式化值。然后我需要在视图上运行一个 select 语句来查找值大于 800 的项目。我遇到的问题是,在定义 WHERE 语句时,我收到以下错误:
消息 245,级别 16,状态 1,第 4
行将 varchar 值“17.50”转换为数据类型 int 时转换失败。
我认为这是因为我在视图中创建的数据类型,但我不确定如何以允许我编写 select 语句以查看值 < 800 的方式编写它,并且将保持具有的格式要求成百列和千列之间的逗号。
这是选择语句:
SELECT VendorName
FROM VendorStatistics
WHERE InvLineItemTotal < 800
这是创建 w 视图的原始代码:
CREATE VIEW VendorStatistics
AS
SELECT VendorName, COUNT(Invoices.InvoiceID) AS CountOfInvoices, CONVERT(varchar, SUM(InvoiceLineItemAmount), 1) AS InvLineItemTotal
FROM Vendors JOIN Invoices
ON Vendors.VendorID = Invoices.VendorID
JOIN InvoiceLineItems
ON Invoices.InvoiceID = InvoiceLineItems.InvoiceID
GROUP BY VendorName