使用TRANSFORM和PIVOT的交叉表查询重复行

时间:2014-05-18 14:09:02

标签: java sql ms-access pivot transform

下面的查询将用于检索我的数据库中的结果,然后将其插入到jtable中。

TRANSFORM ABS(a.present)
SELECT e.ID, e.firstName, e.lastName, e.position, e.rate 
FROM employees e LEFT JOIN attendance a ON e.ID = a.empID
GROUP BY e.ID, e.firstName, e.lastName, e.position, e.rate, a.present 
PIVOT a.dateAttended

查询检索到的结果如下所示。

enter image description here

现在,我想要做的是合并一些结果。当日期列的结果不同时(例如1 | 0或0 | 1),我的查询中出现问题。 ID结果正在重复(以红色圈出)。我只是想问一些可能的方法,我可以如何合并结果,如右图所示。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您的问题是您想要转换(即报告a.present的值,但您还在该字段中包含GROUP BY子句。尝试使用TRANSFORM First(Abs(a.present))并从GROUP BY子句中删除a.present,即

TRANSFORM First(Abs(a.present))
SELECT e.ID, e.firstName, e.lastName, e.position, e.rate 
FROM employees e LEFT JOIN attendance a ON e.ID = a.empID
GROUP BY e.ID, e.firstName, e.lastName, e.position, e.rate
PIVOT a.dateAttended