我想计算劳动人民的每日收入。我用pgadmin III和postgresql 9.5.8创建了postgresql数据库,人们可以输入日期、每天的开始时间和结束时间以及费率小时。从这些信息,我希望数据库计算工作时间(开始-结束)和每日收入(工作时间*费率小时)。我怎么能在pgadmin III上做到这一点呢?当我使用查询函数时,我知道如何做到这一点,但我不希望它成为查询,而是作为数据库中的列。有可能吗?谢谢。

发布于 2017-09-03 21:02:11
如果我正确地理解了您,您需要一个表,其中一些列具有基于其他列的计算值。
这样做的一种方法是使用视图。它可以像普通表一样使用,但只有在某些查询中使用它时才会计算它的列值。
假设example表包含start_hour、end_hour和rate列,下面是一个基于您的解释的简单视图:
CREATE VIEW example_view AS
SELECT
start_date, start_hour, end_hour, rate,
(end_hour-start_hour) AS work_time,
(end_hour-start_hour) * rate AS daily_income
FROM example;您可以像普通表一样使用它(选择form,连接到它,其他表等等)。下面是示例中的小提琴,还有一个类似的视图,没有重复的work_time计算逻辑。
https://stackoverflow.com/questions/46027505
复制相似问题