SQL - 获取每月的月份名称和SUM()

时间:2018-05-23 20:20:37

标签: sql oracle

我要在桌面上执行以下任务:

  • 显示月份名称,订单数量和总价值 订单每月

我有一张当前表格的图表 Tables

对不起,我说它是外语但我会翻译。

  • Pedido代表Order
  • 客户产品客户产品和
  • Order_Item的Item_Pedido

我已经尝试加入这些牌桌,然后尝试按名称抓住这个月但却失败了,任何帮助都表示赞赏!

我假设我必须 GROUP BY 来自订单日期的 SELECT 结果?

这是Oracle SQL

尝试查询

SELECT Clientte.nm_cliente, Item_pedido.nr_quantidade "Quantidade", Pedido.dt_venda 
FROM Clientte INNER JOIN Pedido
ON Clientte.id_cliente = Pedido.id_cliente
INNER JOIN Item_pedido
ON Pedido.id_pedido = item_pedido.id_pedido
INNER JOIN Produto
ON item_pedido.id_produto= Produto.id_Produto;

2 个答案:

答案 0 :(得分:1)

我想你可能想要这样的东西。

SELECT to_char(Pedido.dt_venda, 'Month') as mon, 
    Clientte.nm_cliente, 
    count(distinct id_pedido) as num_orders,
    sum(Item_pedido.nr_quantidade * produto.nr_preco) total_value 
FROM Clientte 
INNER JOIN Pedido
  ON Clientte.id_cliente = Pedido.id_cliente
INNER JOIN Item_pedido
  ON Pedido.id_pedido = item_pedido.id_pedido
INNER JOIN Produto
  ON item_pedido.id_produto= Produto.id_Produto
GROUP BY to_char(Pedido.dt_venda, 'Month');

两个假设 - 您说您想要“订单数量”,所以我假设您指的是该月的唯一ID_PEDIDO数量。您可能需要sum(nr_quantidade),订购的商品总数,我不确定。

其次,您想要“订单的总价值”,我假设这意味着每个订单中所有商品的总商品数量*价格。

答案 1 :(得分:0)

SELECT Count(*), ID_PEDIDO, EXTRACT(month FROM date) FROM Pedido 
GROUP BY ID_PEDIDO, EXTRACT(month FROM date)

你能看出这会让你更接近吗?