我有以下結構一個MDB表:如何比較一個mdb表中的兩行?
- 字段1字段2字段3字段4
- 一...
- 乙...
我嘗試使用查詢列表結果集中行A和B的所有不同字段:
SELECT * From Table1
WHERE Field1 = 'A'
UNION
SELECT * From Table1
WHERE Field1 = 'B';
但是,此查詢h作爲兩個問題:
它列出所有的領域,包括 相同的細胞,具有大的表
它給出了一個錯誤消息:太 許多領域中定義。
我怎麼能解決這些問題?
我有以下結構一個MDB表:如何比較一個mdb表中的兩行?
我嘗試使用查詢列表結果集中行A和B的所有不同字段:
SELECT * From Table1
WHERE Field1 = 'A'
UNION
SELECT * From Table1
WHERE Field1 = 'B';
但是,此查詢h作爲兩個問題:
它列出所有的領域,包括 相同的細胞,具有大的表
它給出了一個錯誤消息:太 許多領域中定義。
我怎麼能解決這些問題?
您可以在full join
表格本身上匹配相同的行。然後,如果兩個連接部分之一是null
,則可以過濾不匹配。例如:
select *
from (
select *
from Table1
where Field1 = 'A'
) A
full join
(
select *
from Table1
where Field1 = 'B'
) B
on A.Field2 = B.Field2
and A.Field3 = B.Field3
where A.Field1 is null
or B.Field1 is null
如果您有200個字段,請詢問Access以通過在設計視圖中創建查詢來生成列列表。切換到SQL視圖並複製/粘貼。具有列模式的編輯器(如UltraEdit)將有助於創建查詢。
你可以用'full join'查詢mdb ...嗎? – onedaywhen 2011-02-24 11:35:45
根據Field1的值和所需的值來選擇表中所有需要的字段是不是最簡單的?
因此,像這樣:
SELECT field1, field2,...field195
FROM Table1
WHERE field1 = 'A' or field1 = 'B'
GROUP BY field1, field2, ....field195
這會給你所有行字段1是A或B並且在所選擇的領域之一的差別。
哦,對於group by語句以及SELECT部分,確實使用前面提到的編輯模式進行查詢。您可以在結果中添加所需的所有字段(通過在表格中選擇並拖放它們),然後單擊功能區中的「總計」按鈕爲所有字段添加組旁邊的語句。然後,您只需添加Where子句即可完成。
現在,這個問題更加清晰(您想查詢,選擇字段,而不是基於特定要求的記錄),我得我的答案更改爲:
這是不可能。 (直到證明並非);)
據我所知,一個查詢被用於使用例如where子句,從未用於確定哪些字段應當根據一定的繞圈被顯示來選擇記錄。
在這種情況下可能會有幫助的一件事是看數據庫設計。這些表是否正確製作? 假設您有190個僅包含主要數據細節的字段。你可以在另一個表中分開這個,所以你有一個主表和細節表。 詳細資料表格可能看起來像:
ID ID_Main Det_desc Det_value
這樣,您就可以篩選是兩個主要的值A和B使用像之間的平等所有詳細值:
Select a.det_desc, a.det_value, b.det_value
(Select Det_desc, det_value
from tblDetails
where id_main = a) as A inner join
(Select Det_desc, det_value
from tblDetails
where id_main = a) as B
on A.det_desc = B.det_desc and A.det_value <> B.det_value
這個你可以加入如果需要,再次使用主表。
@Yohsoog,A ist一行,B ist另一行。我只想看到兩行中有不同值的字段(A和B)。 – JohnMunich 2011-02-24 12:07:21
@JohnMunich所以如果只有50個字段不同,比較行A到行B,你只想看到這兩個行的50個字段作爲你的查詢結果?其他145或沒有顯示。 – Yoh 2011-02-24 12:29:23
@Yohsoog,確切的。 – JohnMunich 2011-02-24 12:34:18
所以你想只有選定行中所有字段的唯一值?表中有幾個字段? – rene 2011-02-24 10:19:03
@Oded謝謝你的回答。其實我只想看到選定行中具有不同值的字段。表中有195個字段。 – JohnMunich 2011-02-24 10:31:23