【发布时间】:2019-12-07 13:28:28
【问题描述】:
我试图在一个视图中显示我的销售额、客户退货和利润。
我已按月在 2 个表中成功完成了内部联接,并按月成功创建了视图。但是,对于 3 个表,我在 date 或 customerorders 表上出现错误(在使用代码时会发生错误)。由于 ProductID 是所有 3 列的公共列,因此我已将其放入 ON 和 WHERE 部分。
我已经根据教程(我正在独立学习 MySQL 工作台)和研究来玩弄代码。看起来下面的代码应该可以工作。我不知道出了什么问题。请注意,我尝试进行两个内部连接,但也没有成功,例如
INNER JOIN supplierstockorder ON customerorders.ProductID = supplierstockorder.ProductID = customerreturns.ProductID
INNER JOIN customerreturns ON customerorders.ProductID = customerreturns.ProductID
谁能帮忙?
Table 1 - customerorders(CustomerOrderID varchar(255) PK,
日期日期, 客户 ID varchar(255), PaymentID varchar(255), 产品ID varchar(255), 数量 int(20), OrderValue 十进制 (18, 2) 表 2 - customerreturns(ReturnID varchar(255) PK, 客户 ID varchar(255), 日期日期, 产品ID varchar(255), CRQuantity int(10), 返回值 int(10)) 表 3-supplierstockorder(SupplierStockOrderID varchar(255) PK, 日期日期, 供应商 ID varchar(255), 产品ID varchar(255), 数量 int(10), 成本价格 int(10), 增值税小数(10,2), SSTotal int(10))
CREATE VIEW SalesProfitCrReturns AS
SELECT monthname(Date) as MonthDetails, SUM(customerorders.OrderValue) AS Sales,
SUM(customerreturns.ReturnsValue) AS CustomerReturns,
SUM(supplierstockorder.Quantity * supplierstockorder.CostPrice)
- SUM(customerorders.OrderValue)
- SUM(customerreturns.ReturnsValue) AS Profit
FROM customerorders, customerreturns
INNER JOIN supplierstockorder
ON customerorders.ProductID = supplierstockorder.ProductID = customerreturns.ProductID
WHERE customerorders.ProductID = supplierstockorder.ProductID = customerreturns.ProductID
GROUP BY MonthDetails with rollup;
【问题讨论】:
标签: mysql