已知有两张表:

  1. busretail 零售单 (id,billdate,vipid,qty,famount,ramount) 其中 ID 为主键,billdate 为单据日期,vipid 为会员 ID,qty 为零售数量,famount 为零售成交金额,ramount 为零售原价金额。
  2. defvip 会员档案 (id,VIPNO,VIPNAME,BIRTH,sex,TCNT,TOTLECOST) 其中 id 为主键,VIPno 为会员卡号,vipname 为会员名称,BIRTH 为生日 (例:0920),sex 为性别,TCNT 为消费次数,TOTLECOST 为消费金额。

查询 8 月 1 日到 9 月 20 号的每天的零售数量、零售金额、单据日期内容:

1. 使用 GROUP BY 聚合数据

SELECT billdate, SUM(qty) AS '零售数量', SUM(famount) AS '零售金额'
FROM busretail
WHERE billdate BETWEEN '2021-08-01' AND '2021-09-20'
GROUP BY billdate;

解释:

  • 使用 SELECT billdate, SUM(qty) AS '零售数量', SUM(famount) AS '零售金额' 选择要查询的字段,并使用 SUM() 函数分别统计 qtyfamount 的总和,并分别命名为 '零售数量' 和 '零售金额'。
  • 使用 FROM busretail 指定查询的表。
  • 使用 WHERE billdate BETWEEN '2021-08-01' AND '2021-09-20' 过滤日期范围。
  • 使用 GROUP BY billdate 将结果按照 billdate 进行分组,以便统计每个日期的总和。

2. 直接查询所有数据

SELECT billdate, qty AS '零售数量', famount AS '零售金额'
FROM busretail
WHERE billdate BETWEEN '2021-08-01' AND '2021-09-20';

解释:

  • 使用 SELECT billdate, qty AS '零售数量', famount AS '零售金额' 选择要查询的字段,并分别命名为 '零售数量' 和 '零售金额'。
  • 使用 FROM busretail 指定查询的表。
  • 使用 WHERE billdate BETWEEN '2021-08-01' AND '2021-09-20' 过滤日期范围。

注意: 这种方法会返回所有符合条件的记录,而不是汇总每个日期的总和。 如果需要统计每个日期的总和,则需要使用 GROUP BY 聚合数据。

SQL 查询:统计 8 月 1 日到 9 月 20 日每天的零售数量和金额

原文地址: https://www.cveoy.top/t/topic/n93u 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录