我正在尝试在[MFG #]
,[CM HT]
,[CM WT]
和CBM
列中查找重复记录,同时仍会看到一些名为ProdKeywords
的其他列(不在此SQL语句中)和DateCode
。但是我坚持GROUP BY
条款。 MS Access要求我输入我在SELECT
语句中放入的所有列。我还尝试在HAVING
语句中添加每一列。
SELECT First(tblDat01Prod.[DATE CODE]) AS FirstOfDateCode, tblDat01Prod.[MFG #], tblDat01Prod.[CM HT], tblDat01Prod.[CM WDT], tblDat01Prod.[CM DPT], tblDat01Prod.CBM INTO temp_Delete
FROM tblDat01Prod
GROUP BY tblDat01Prod.[MFG #], tblDat01Prod.[CM HT], tblDat01Prod.[CM WDT], tblDat01Prod.[CM DPT], tblDat01Prod.CBM
HAVING (((Count(*))>1));
重复记录在' [MFG#]' ' [CM HT]' ' [CM WDT]' &安培; ' [CM DPT]'我还想让它返回每个与ProdKeywords
和DATE CODE
一起重复的记录
我想象查询看起来像这样
SELECT tblDat01Prod.[DATE CODE], tblDat01Prod.[MFG #], tblDat01Prod.[CM HT], tblDat01Prod.[CM WDT], tblDat01Prod.[CM DPT], tblDat01Prod.CBM, tblDat01Prod.[ProdKeywords]
FROM tblDat01Prod
GROUP BY tblDat01Prod.[MFG #], tblDat01Prod.[CM HT], tblDat01Prod.[CM WDT], tblDat01Prod.[CM DPT], tblDat01Prod.CBM
HAVING (((Count(*))>1)) -----Except for prodkeywords and DATE CODE;
答案 0 :(得分:0)
如果我理解您的情况,此查询将向您显示 MFG#, CM HT , CM WDT , CM DPT 和 CBM ,它包含在多个记录中......
SELECT
t.[MFG #],
t.[CM HT],
t.[CM WDT],
t.[CM DPT],
t.CBM
FROM tblDat01Prod AS t
GROUP BY
t.[MFG #],
t.[CM HT],
t.[CM WDT],
t.[CM DPT],
t.CBM
HAVING Count(*)>1;
如果这是正确的,剩下的问题是您希望查看包含这些重复值的源记录,请将该查询保存为 qryDupValues 。然后创建一个新的查询,将 tblDat01Prod 表连接到 qryDupValues 。
SELECT
t.[MFG #],
t.[CM HT],
t.[CM WDT],
t.[CM DPT],
t.CBM,
t.ProdKeywords,
t.[DATE CODE]
FROM
tblDat01Prod AS t
INNER JOIN qryDupValues AS q
ON
t.[MFG #] = q.[MFG #]
AND t.[CM HT] = q.[CM HT]
AND t.[CM WDT] = q.[CM WDT]
AND t.[CM DPT] = q.[CM DPT]
AND t.CBM = q.[CBM];
或者,您可以使用子查询代替单独的 qryDupValues 保存的查询。如果需要,你可以稍后再这样做。但我希望这种堆叠查询方法最初会更容易管理。