Как создать новую таблицу без дубликатов в поле на основе таблицы, в которой есть дубликаты в этом поле? - PullRequest
0 голосов
/ 04 марта 2020

Как мне создать новую таблицу в Access без дубликатов в поле PROD_ID на основе таблицы, в которой есть дубликаты в этом поле?

Я хотел бы такую ​​таблицу:

╔═════════╦═══════════╦═══════════╗
║ PROD_ID ║ ATC_COD_1 ║ ATC_COD_2 ║
╠═════════╬═══════════╬═══════════╣
║      65 ║ D01AC02   ║ D10AE01   ║
║      71 ║ R01BA52   ║ R06AX07   ║
║     101 ║ N02BE51   ║ M03BX05   ║
╚═════════╩═══════════╩═══════════╝

Примечание: PROD_ID; ATC_COD_1 и ATC_COD_2 - это имена полей.

Начиная с такой таблицы:

╔═════════╦═════════╗
║ PROD_ID ║ ATC_COD ║
╠═════════╬═════════╣
║      65 ║ D01AC02 ║
║      65 ║ D10AE01 ║
║      71 ║ R01BA52 ║
║      71 ║ R06AX07 ║
║     101 ║ N02BE51 ║
║     101 ║ M03BX05 ║
╚═════════╩═════════╝

Примечание: PROD_ID; ATC_COD - это имена полей.

Всегда будет только две записи для каждого PROD_ID, и мне не нужны никакие критерии.

1 Ответ

0 голосов
/ 04 марта 2020

Вы можете использовать агрегацию:

select PROD_ID,
       min(ATC_COD) as ATC_COD_1,
       if(min(ATC_COD) <> max(ATC_COD), max(ATC_COD), null) as ATC_COD_2 
from t
group by PROD_ID
...