2017-04-06 120 views
1

同桌我有这种数据表:联盟与ACCESS

+------------+----------+----------+ 
| Unique ID | Name | Class | 
+------------+----------+----------+ 
|   1 | Name 1 | Class A | 
|   2 | Name 2 | ""  | 
|   3 | Name 3 | Class C | 
|   4 | Name 1 | ""  | 
|   5 | Name 4 | ""  | 
|   6 | Name 4 | ""  | 
+------------+----------+----------+ 

我试图做一些我认为是简单的,但我没有找到这样。

我想“提取”只有在'类'中的空字符串值为一组相同的名称。因为即使是同一条线“”有与“A类”另一条线

+------------+----------+--------+ 
| Unique ID | Name | Class | 
+------------+----------+--------+ 
|   2 | Name 2 | "" | 
|   5 | Name 4 | "" | 
+------------+----------+--------+ 

所以没有名称1:所以在这种情况下

我会得到这样的结果。

我认为一个联盟会做这项工作,但我不gettgin什么,因为我认为工会是两个表,但问题是我有在同一个表中的数据。

谢谢您的帮助

+0

如何讲述了一群被查询的ID和姓名基团,包括MAX(类),与一个标准MAX(类)= “” –

回答

1

Access语法可能会有点不同,但它返回你想要什么在甲骨文:

SELECT distinct Name, Class FROM table1 Where Name NOT in (select name from table1 where class is not null) 
-1

一个联盟融合了两个结果集,无论它们是否来自同一个表是无关紧要的。你想做的是从结果集中省略具有相同名称的行,并且类不为null。没有查询扩展或更改是一个问题,但是如果添加一个说明类似于“不在名称中的名称”(从类的名称不为空的地方选择名称)的子句;“,则可以这样做。

+0

你好,这是我做的: SELECT名称, 类从MYTABLE WHERE名称<> “” UNION SELECT名称, 类从MYTABLE 其中name = “” 因此这应该工作: SE LECT名称, 类从MYTABLE WHERE名称<> “” UNION SELECT姓名, 类从MYTABLE 凡NOT IN(来自表,其中类不为空选择名称)名称; ? 谢谢 – user7828779

+0

我想你可以合并这两个答案并删除其中的一个。 –