SQL按日期选择所有

时间:2019-10-10 21:35:30

标签: sql select sql-update sql-order-by

我是SQL新手。 我有3张桌子,如下所示:

表客户端:具有其姓氏和名字,完整地址的客户端列表 表格产品:在网站上发送的商品列表,其中包含商品名称,制造国家和价格 表操作:客户完成的所有交易以及交易时间的列表。

所需的输出

获取日期为2018年每个国家/地区的所有客户产生的收入,并按收入最高的顺序排序。

2 个答案:

答案 0 :(得分:0)

可以执行以下操作(假设事务表具有商品名称,产品表具有带有日期数据类型的日期字段):

select 
a.client, 
sum(c.price) as revenue

from client as a 

inner join actions as b 
on a.client = b.client

inner join produit c
on c.article = b.article

where year(c.date) = '2018'

group by 
a.client 

order by 
sum(c.price);

答案 1 :(得分:0)

如果您要包含国家/地区,首先查看最高收入,并使用ANSI函数作为年份,则应该可以使用。

SELECT c.client_id,
       c.first_name,
       c.last_name,
       p.country,
       SUM(a.amount) amount
FROM   client c
       JOIN actions a ON c.client_id = a.client_id
       JOIN produit p ON a.article_id = p.article_id
WHERE  EXTRACT(YEAR FROM a.transaction_date) = '2018'
GROUP BY c.client_id,
         c.first_name,
         c.last_name,
         p.country
ORDER BY SUM(a.amount) DESC;