PGsql里,请查询,2019年3月份期间内,产品包装类型为‘No pkg’ 和 ‘Qtr-pound bag’ 每天的销售金额 ,并计算两种产品包装类型每天的差额(两种类型都没有发生销售的日期不用展示)结果展示日期、‘No pkg’销售金额、‘Qtr-pound bag’销售金额、‘No pkg’ - ‘Qtr-pound bag’ 的差额 ,按日期由小到大排序
时间: 2023-09-23 15:12:15 浏览: 147
zabbix-server-pgsql-7.0-centos-latest.tar
在PostgreSQL中,你可以使用SQL查询来解决这个问题。假设你有一个名为"sales"的表,其中包含销售日期(sale_date)、产品包装类型(package_type)和销售金额(sales_amount)三列,以下是一个可能的查询示例:
```sql
SELECT sale_date,
SUM(CASE WHEN package_type = 'No pkg' THEN sales_amount ELSE 0 END) AS "No pkg Sales",
SUM(CASE WHEN package_type = 'Qtr-pound bag' THEN sales_amount ELSE 0 END) AS "Qtr-pound bag Sales",
SUM(CASE WHEN package_type = 'No pkg' THEN sales_amount ELSE -sales_amount END) AS "Difference"
FROM sales
WHERE sale_date >= '2019-03-01' AND sale_date < '2019-04-01'
AND (package_type = 'No pkg' OR package_type = 'Qtr-pound bag')
GROUP BY sale_date
HAVING SUM(CASE WHEN package_type = 'No pkg' THEN sales_amount ELSE 0 END) != 0
AND SUM(CASE WHEN package_type = 'Qtr-pound bag' THEN sales_amount ELSE 0 END) != 0
ORDER BY sale_date ASC;
```
这个查询首先筛选出2019年3月份期间内的销售数据(sale_date >= '2019-03-01' AND sale_date < '2019-04-01'),然后使用条件语句(CASE WHEN)分别计算每一天的"No pkg"和"Qtr-pound bag"的销售金额,并将差额计算在最后一个列中。最后,按日期由小到大进行排序(ORDER BY sale_date ASC)。
请根据你的实际情况修改表名和列名以适应你的数据库结构。希望这个查询能满足你的需求。如果你还有其他问题,请随时提问。
阅读全文