【问题标题】:Create procedure which shows customer orders: summary quantitty and amount orders in individual years. Customer ID on input to procedure创建显示客户订单的程序:汇总数量和个别年份的订单金额。输入到程序的客户 ID
【发布时间】:2019-01-13 14:51:19
【问题描述】:

我的程序有问题,因为我不知道如何计算各个年份的订单数量

CREATE PROCEDURE Orders @id VARCHAR(10) 
AS 
    SELECT unitprice * quantity Amount, 
           Count([order details].orderid), 
           Year(orderdate) 
    FROM   [order     details] 
           INNER JOIN orders 
                   ON [order details].orderid = orders.orderid 
    WHERE  customerid = @id 
    GROUP  BY unitprice * quantity, 
              Year(orderdate), 
              [order details].orderid 

我必须按年分组,但我不知道该怎么做。请帮助我:)

【问题讨论】:

    标签: sql sql-server northwind


    【解决方案1】:

    这是你想要的吗?

    SELECT YEAR(o.OrderDate) as yyyy, 
           SUM(od.UNITPRICE*od.QUANTITY) as Amount,
           count(*) as num_orders
    FROM [Order Details] od INNER JOIN
         Orders o
         on od.OrderID = o.OrderID
    WHERE o.CustomerID = @id 
    GROUP BY Year(OrderDate);
    

    注意事项:

    • SELECT 中的所有列指定一个别名,以便您知道它们应该做什么。
    • 表别名使查询更易于编写和阅读。
    • 限定所有列名,以便您知道它们来自哪个表。
    • GROUP BY 中的唯一表达式应该是SELECT 中的unaggregated 列。

    【讨论】:

    • 当然,是的。现在,我明白了一切。非常感谢:)
    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多