# "OrdersList" 存储过程

说明：

本存储过程以CustomerID为输入，返回Orders表中全部用户订单的一个列表。本存储过程由OrdersList.aspx页面调用。

定义：

    	CREATE Procedure CMRC_OrdersList
    	(
    		@CustomerID int
    	)
    	As

    	SELECT
    		CMRC_Orders.OrderID,
    		Cast(sum(CMRC_OrderDetails.quantity*CMRC_OrderDetails.unitcost) as money) as OrderTotal,
    		CMRC_Orders.OrderDate,
    		CMRC_Orders.ShipDate

    	FROM
    		CMRC_Orders
    	INNER JOIN CMRC_OrderDetails ON CMRC_Orders.OrderID = CMRC_OrderDetails.OrderID

    	GROUP BY
    		CustomerID,
    		CMRC_Orders.OrderID,
    		CMRC_Orders.OrderDate,
    		CMRC_Orders.ShipDate
    	HAVING
    		CMRC_Orders.CustomerID = @CustomerID

用到的数据库表：

Orders: Order表包含系统里全部订单的头信息（即所有实际购买的商品。在系统中，为了设置一个订单，用户必须为其购物车中的商品付帐)。在创建一个订单时，会在Orders表中添加一条记录，包括CustomerID, OrderDate和ShipDate.然后，订单中产品的所有相关信息被添加到下面将要讨论的OrderDetails表中。注意：如果没有提供OrderDate 或ShipDate，则会输入当前时间作为默认值。

OrderDetails: OrderDetails表系统中每个订单的详细产品信息。OrderDetails表为订单中的每个产品创建一个记录。包含该产品的ProductID, Quantity 和UnitCost。在OrderDetails表和Orders表间存在多对一的关系。注意：该表的主键是由OrderID与ProductID组成的复合键（因为这两项是保证记录唯一性的最低要求）.