【发布时间】:2018-04-27 07:18:37
【问题描述】:
我最近的任务有点问题。我正在使用旧的 Northwind 数据库。 首先,我必须创建一个查询,它将为我提供发票的所有重要信息。我的查询如下所示:
SELECT b.OrderID,
b.CustomerID,
c.CompanyName,
c.Address,
c.City,
c.PostalCode,
c.CountryID as CustomersCountryID,
concat(d.FirstName, ' ', d.LastName) as Salesperson,
a.CompanyName as ShippingVia,
e.ProductID,
f.ProductName,
e.Quantity,
e.UnitPrice * e.Quantity * (1 - e.Discount) as ExtendedPrice
from Shippers a
inner join Orders b on a.ShipperID = b.ShipVia
inner join Customers c on c.CustomerID = b.CustomerID
inner join Employees d on d.EmployeeID = b.EmployeeID
inner join [Order Details] e on b.OrderID = e.OrderID
inner join Products f on f.ProductID = e.ProductID
order by b.OrderID
它有效,它给了我所有的信息订单。但是现在,我需要为特定 OrderId 的发票创建一个表格视图。当我写这样的东西时:
CREATE VIEW FAKTURA AS
SELECT b.OrderID,
b.CustomerID,
c.CompanyName,
c.Address,
c.City,
c.PostalCode,
c.CountryID as CustomersCountryID,
concat(d.FirstName, ' ', d.LastName) as Salesperson,
a.CompanyName as ShippingVia,
e.ProductID,
f.ProductName,
e.Quantity,
e.UnitPrice * e.Quantity * (1 - e.Discount) as ExtendedPrice
from Shippers a
inner join Orders b on a.ShipperID = b.ShipVia
inner join Customers c on c.CustomerID = b.CustomerID
inner join Employees d on d.EmployeeID = b.EmployeeID
inner join [Order Details] e on b.OrderID = e.OrderID
inner join Products f on f.ProductID = e.ProductID
WHERE b.OrderID = 10248
我只是为那个特定的 OrderID 创建一个单独的视图文件。它看起来根本不像真实的发票。
它应该类似于这样:
我需要将有关发票和客户的一般数据与有关订单本身、产品 ID、数量等的数据分开。 是否可以在 SQL Server Management Studio 中创建类似的东西?我该怎么做?
【问题讨论】:
-
它看起来怎么样?可以发一下吗?
-
@FDavidov 你是说我的“观点”吗?它看起来很像一个带有选定 OrderID 的简单查询,它在“Views”文件夹中创建了一个文件,但它根本不像我帖子中的表格。
-
这可能应该在您的表示层中处理,无论它可能是什么。 SQL Server 擅长生成结果集,但不擅长格式化它们。
-
您的意思是创建报告而不是 mssql 视图?因为视图只显示为具有列和行的表格,并且没有像您发布的图像那样的格式布局
-
@PhamX.Bach 是的,我想这就是我需要的。
标签: sql sql-server northwind