我的上一个任务有点问题。我正在使用旧的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中创建类似的东西?我该怎么办?
答案 0 :(得分:1)
您的查询已经提供了标题(客户信息)和表格正文部分,因此您可以做的是(注意:这不是我要做的,但考虑到需要一个非常简单的解决方案):
根据INVOICE编号对查询执行所有必要的尾随部分计算(这可能类似于您已经拥有的计算,但它会汇总金额,计算税金和运费),
准备好该查询后,INNER将其加入到您已有的查询中(使用发票ID作为键);请注意,您必须将其他字段添加到顶部的SELECT列表中。
结果将是您已经拥有的+每个记录中的小计,税金,运费和总额。
同样,这不是最有效和最优雅的解决方案,但符合您的需求(简单性和最终结果)。