MS Access查询在另一列中显示与值匹配的重复记录

问题描述

| 我需要帮助来通过TRANS_CODE查询表中的不同记录,这些记录与ITEM列中的值匹配。任何帮助将是非常感谢。 这是表格的示例。
ID   TRANS_CODE  ITEM  
1    CD50        Red  
2    TN30       Blue  
3    RC50       Green  
4    WC70       White  
5    PT30       Blue  
6    AB60       White  
7    RC50       Red  
8    WC70       Blue  
9    TN30       Green  
10   PT30       Green  
用于显示重复的TRANS_CODE的逻辑由ITEM列驱动。重复的TRANS_CODE的第一个逻辑是显示ITEM为蓝色,而第二条为show ITEM是绿色。例如... 具有ITEM,蓝色,绿色和红色的TRANS_CODE重复:仅显示蓝色记录 重复的TRANS_CODE具有ITEM,绿色,红色和白色:仅显示绿色记录 结果应生成此列表。
ID   TRANS_CODE   ITEM  
1    CD50         Red  
2    TN30         Blue  
3    RC50        Green  
8    WC70         Blue  
5    PT30         Blue  
6    AB60         White  
    

解决方法

您可以使用开关将颜色映射到数字。然后,使用将两个内联查询结合在一起,您可以获得所需的答案。 从技术上讲,您不需要使用此开关,因为颜色是按字母顺序排列的,但以防万一您的实际值不是
SELECT t.id,t.transcode,t.item 
FROM   (SELECT transcode,item,id,Switch([ITEM] = \"Blue\",1,[ITEM] = \"Green\",2,[ITEM] = \"Red\",3,[ITEM] = 
               \"White\",4) AS weight 
        FROM   table2) AS t 
       INNER JOIN (SELECT transcode,MIN(Switch([ITEM] = \"Blue\",[ITEM] = 
                              \"Red\",[ITEM] = 
                                  \"White\",4)) AS weight 
                   FROM   table2 
                   GROUP  BY transcode) AS t2 
         ON ( t.weight = t2.weight ) 
            AND ( t.transcode = t2.transcode ) 
ORDER  BY t.id 
这将为您提供以下输出,我希望ID 8在6之后而不是3到5之间为您工作
id  transcode   item
1   CD50    Red
2   TN30    Blue
3   RC50    Green
5   PT30    Blue
6   AB60    White
8   WC70    Blue
注意:您可以将
MIN(Switch...
替换为
FIRST(Switch...
,以提高性能     ,您应该尝试这样:
select 
   (select ID from sometable as t2 where t2.trans_code = t1.trans_code and t2.item = Min(t1.Item)),t1.trans_code,Min(t1.item)
from sometable as t1
group by trans_code 
order by 1
由于您没有指定哪种颜色应该具有首选项,因此我按字母顺序设置了首选项(蓝色,绿色,红色和白色)。我可以从您的预期输出中捕捉到那顶帽子。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...