Sql 带折扣的月度销售的存储过程
我需要关于如何创建存储过程的建议,或者关于如何在我们公司创建用于生成月度销售报告的许多存储过程的建议。我缩短了表格,使其更易于理解: 我们有两张桌子:Sql 带折扣的月度销售的存储过程,sql,stored-procedures,accounting,Sql,Stored Procedures,Accounting,我需要关于如何创建存储过程的建议,或者关于如何在我们公司创建用于生成月度销售报告的许多存储过程的建议。我缩短了表格,使其更易于理解: 我们有两张桌子: 商品销售,包括: Item_ID Name Store Sales_Date Sales_Price Quantity 和项目折扣,包括: Item_ID Name Store Sales_Price Date_From Date_To 说
,包括:商品销售
Item_ID Name Store Sales_Date Sales_Price Quantity
- 和
,包括:项目折扣
Item_ID Name Store Sales_Price Date_From Date_To
项目销售
中的所有销售,然后检查项目折扣
中的所有折扣,并覆盖在选定期间具有类似项目ID
、名称
和存储
的折扣
示例:因此,如果一个项目最初的销售价格为99,-然后折扣销售价格为79,-对于2014-01-02至2014-01-10,则必须覆盖该期间,以便报告显示正确的数字
这可以理解吗?在路上谁能帮我或给我一些建议?临时桌子适合这个吗
如果需要更多信息,我会提供 您可以在存储过程中使用
LEFT JOIN
创建报告,其中需要报告的月份和年份可以作为参数传递,如下所示:
SQL Server:
CREATE PROCEDURE GetSalesReport
@month INT,
@year INT
AS
SELECT isa.Item_ID,
isa.Name,
isa.Store,
isa.Sales_Date,
COALESCE(id.Sales_Price, isa.Sales_Price) AS SalesPrice,
isa.Quantity
FROM ITEM_SALES AS isa
LEFT JOIN ITEM_DISCOUNT AS id
ON isa.Item_ID = id.Item_ID
AND isa.Name = id.Name
AND isa.Store = id.Store
AND isa.Sales_Date BETWEEN id.Date_From AND id.Date_To
WHERE MONTH(isa.Sales_Date) = @month AND YEAR(isa.Sales_Date) = @year
你要求的是SQL——我认为这在MySQL中相对容易解决,但我不确定解决方案是否是纯SQL99。你想看看吗?是的,那太好了。这是所有的销售记录。你想要本月的报告吗?这对我来说似乎是正确的方向@DipenduPaul,我以为你想要所有的销售?我想能够选择monthSorry我以为我给它贴上了标签,Microsoft SQL Server 2008 R2;)