一张表temp 中有 d_day时间字段和amount销售金额字段 ,查出他本期和同期的销售金额
时间: 2024-02-25 13:59:39 浏览: 67
假设你要查询2021年6月份的销售数据,并且同期为2020年6月份,你可以使用以下的SQL语句查询:
```
SELECT
a.d_day AS '本期日期',
a.amount AS '本期销售金额',
b.amount AS '同期销售金额'
FROM
temp a
LEFT JOIN temp b ON DATE_FORMAT(a.d_day, '%Y-%m') = DATE_FORMAT(b.d_day, '%Y-%m')
AND YEAR(a.d_day) = YEAR(b.d_day) - 1
AND MONTH(a.d_day) = MONTH(b.d_day)
WHERE
a.d_day >= '2021-06-01'
AND a.d_day <= '2021-06-30'
ORDER BY
a.d_day ASC;
```
该SQL语句使用了自连接,将同一张表连接了两次,分别使用了a和b作为别名。在ON子句中,筛选出a和b的日期是同一月份,但是年份相差1年(即为同期),并且日期相同。然后在WHERE子句中,过滤出了本期的销售数据,即2021年6月份的销售数据。最后在SELECT子句中,选择了本期日期、本期销售金额和同期销售金额三个字段,并以本期日期为排序字段,按升序排列。
注意:上述SQL语句是基于MySQL数据库,如果使用的是其他类型的数据库,一些语法可能需要稍微修改。同时,如果你的日期字段d_day中包含时间信息,你需要对日期进行截取或格式化,以保证比较的正确性。
阅读全文