【发布时间】:2019-12-01 11:43:17
【问题描述】:
- 列表项
我是 PostgreSQL 的新手,我很难得到我想要的结果。 为了获得适当的结果,我需要进行多个联接,并且在计算将它们分组到一个查询中时也有困难。
表名如下:pers_person、pers_position 和 acc_transaction。 我想要完成的是;
- 比较 pers_person 和 acc_transaction 的任何记录,查看谁在哪个日期缺席,如果有任何记录则很好...但如果记录为空,则此人肯定缺席。
我想统计 pers_person 的缺勤情况,这个人一个月缺勤的次数。
还应考虑 personhired_date,此人可能在 11 月 10 月被聘用,报告此人应被过滤掉。
pers_postition 表用于给出该人的位置信息。
'''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''
SELECT tr.create_time::date AS Date, pers.pin, tr.dept_name, tr.name, tr.last_name, pos.name, Count(*)
FROM acc_transaction AS tr
RIGHT JOIN pers_person as pers
ON tr.pin = pers.pin
LEFT JOIN pers_position as pos
ON pers.position_id=pos.id
WHERE tr.event_no = 0 AND DATE_PART('month', DATE)=10 AND DATE_PART('month', pr.hire_date::date)<=10 AND pr.pin IS DISTINCT FROM tr.pin
GROUP BY DATE
ORDER BY DATE
'''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''
*这是 10 月的报告, *Pin 是身份证号
【问题讨论】:
标签: postgresql null left-join grouping counting