Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql:如何获取特定月份不同用户的总成本和每日明细_Sql_Postgresql - Fatal编程技术网

Postgresql:如何获取特定月份不同用户的总成本和每日明细

Postgresql:如何获取特定月份不同用户的总成本和每日明细,sql,postgresql,Sql,Postgresql,我通过连接各种db表获得数据,如下所示: 所以我只想在总成本超过100时获取数据。 对于不同的月份,数据将是这样的- 2020年4月 2020年5月 等等 预期结果:只有当总成本超过100时,我才需要每日明细和总成本 我尝试过使用SQL子查询,但最终只得到了总成本。 我也尝试了累计总和,但这没有帮助,因为这不是我需要的东西 接下来,我尝试了联合:获取总成本行和每日明细,并进行了联合,但总成本超出限制条件失败 (SELECT s.id, u.name, TO_CHAR(s.starttime

我通过连接各种db表获得数据,如下所示:

所以我只想在总成本超过100时获取数据。 对于不同的月份,数据将是这样的- 2020年4月

2020年5月

等等

预期结果:只有当总成本超过100时,我才需要每日明细和总成本

我尝试过使用SQL子查询,但最终只得到了总成本。 我也尝试了累计总和,但这没有帮助,因为这不是我需要的东西

接下来,我尝试了联合:获取总成本行和每日明细,并进行了联合,但总成本超出限制条件失败

(SELECT s.id, u.name,
TO_CHAR(s.starttime,'YYYYmm') AS month,
TO_CHAR(s.starttime,'YYYYmmDD') AS day,
s.COST
FROM Table_A s
INNER JOIN Table_B u ON u.id= s.id
INNER JOIN Table_C q
ON q.query = s.query
AND q.starttime = s.starttime
AND q.id= s.id
WHERE month = '202004'
GROUP BY 1, 2, 3, 4
ORDER BY month, 5 DESC
)
UNION
SELECT id, name, month, '' as day ,sum(total_cost_with_sales_tax) TOTAL_COST from
(SELECT s.id, u.name,
TO_CHAR((s.starttime,'YYYYmm') AS month,
TO_CHAR((s.starttime,'YYYYmmDD') AS day,
s.cost
FROM Table_A s
INNER JOIN Table_B u ON u.id= s.id
INNER JOIN Table_C q
ON q.query = s.query
AND q.starttime = s.starttime
AND q.id= s.id
GROUP BY 1, 2, 3, 4
ORDER BY month_run,
5 DESC
) A
WHERE month_run = '202004'
GROUP BY 1,2,3
HAVING TOTAL_COST > 100
ORDER BY TOTAL_COST DESC
)