我想计算劳动人民的日常收入。我用pgadmin III和postgresql 9.5.8创建了一个postgresql数据库,人们可以输入每天的日期,开始时间和结束时间以及费率小时。根据这些信息,我希望数据库计算工作时间(开始 - 结束)和每日收入(工作时间*费率小时)。我有什么想法可以在pgadmin III上做到这一点吗?我知道如何在使用查询函数时执行此操作,但我不希望它作为查询而是作为数据库中的列。可能吗 ?谢谢。
答案 0 :(得分:0)
如果我理解正确,您需要一个表格,其中某些列根据其他列计算出值。
执行此操作的一种方法是使用View。它可以像常规表一样使用,但它的列值仅在您在某些查询中使用时计算。
假设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;
您可以像使用常规表一样使用它(选择表单,连接到其他表等)。这是a fiddle的示例,也是类似的视图,没有work_time
计算的重复逻辑。