2015-11-04 3 views
0

У меня есть таблица, как показано ниже:MS Access запрос, чтобы получить уникальные записи из таблицы

ID Demand_ID Supply_ID Supply_Skill Supply_Designation Supply_Location 
1 D10   S10   Python   engineer   Mumbai 
2 D10   S16   Python   engineer   Mumbai 
3 D10   S2   Python   engineer   Mumbai 
4 D10   S7   Python   engineer   Mumbai 
5 D12   S12   Java   Manager    Bangalore 
6 D1   S1   Java   Senior engineer  Bangalore 
7 D1   S11   Java   Senior engineer  Bangalore 
8 D1   S3   Java   Senior engineer  Bangalore 
9 D2   S10   Python   engineer   Mumbai 
10 D2   S16   Python   engineer   Mumbai 
11 D2   S2   Python   engineer   Mumbai 
12 D2   S7   Python   engineer   Mumbai 
13 D3   S1   Java   Senior engineer  Bangalore 
14 D3   S11   Java   Senior engineer  Bangalore 
15 D3   S3   Java   Senior engineer  Bangalore 

Как получить уникальные записи, как показано ниже:

ID Demand_ID Supply_ID Supply_Skill Supply_Designation Supply_Location 
1 D10   S10   Python   engineer   Mumbai 
5 D12   S12   Java   Manager    Bangalore 
6 D1   S1   Java   Senior engineer  Bangalore 
10 D2   S16   Python   engineer   Mumbai 
14 D3   S11   Java   Senior engineer  Bangalore 

Пожалуйста скажите мне логику, чтобы получить уникальные записи, как указано выше, и с приведенным ниже условием, например, данные от Supply_ID до Supply_Location не должны повторяться для Demand_ID.

Как и в приведенном выше примере Demand_IdD10 и D2 имеют одинаковый набор записей следующих столбцов. Если один из столбцов соответствует D10, то его не следует повторять для D2. Для D2 он может выбрать любые записи из соответствующих столбцов, кроме записи, уже выбранной из D10.

+0

Зачем D10 идти до D2? Похоже, вам нужно какое-то решение на основе скриптов. – jarlh

ответ

0

То, что вы описываете, не является точным получением отдельных записей (поскольку исходная таблица имеет разные записи), но получение первой записи для каждого Demand_Id.

SELECT * 
    FROM Supplies_And_Demands 
WHERE ID IN (SELECT MIN(ID) 
       FROM Supplies_And_Demands 
       GROUP BY Demand_Id) 
+0

Привет, Кен, Спасибо за ответ. на основе ваших запросов, Supply_ID, Supply_Skill, Supply_Designation и Supply_Location будет повторяться. для D10, S10 будет выбрана так же, как и в записи D2. Мне нужны другие записи, кроме S10 для D2. –

+0

Ах. Я не совсем понял этот вопрос. У вас есть проблема оптимизации, и это трудно выразить в SQL. Это можно сделать (по крайней мере в некоторых базах данных). Смотрите это безумие. https://technology.amis.nl/2009/10/13/oracle-rdbms-11gr2-solving-a-sudoku-using-recursive-subquery-factoring/ –

Смежные вопросы