У меня есть таблица MASTER, импортированная из другого источника. Содержит эти поля:
ПОЛЕ A, ПОЛЕ B, ПОЛЕ C, ПОЛЕ D, ПОЛЕ E, ПОЛЕ F, ПОЛЕ G, ПОЛЕ H, ПОЛЕ I, ПОЛЕ J, и ПОЛЕ K
Я пытаюсь сконструировать запрос, который будет возвращать каждый экземпляр, где в первую очередь FIELD D НЕ DISTINCT. Я хочу, чтобы все записи, которые встречались более одного раза, возвращались. Затем оттуда, в этом наборе, я хочу вернуть все, где для каждой отдельной записи ПОЛЯ D есть несколько результатов для ПОЛЯ I.
ПОЛЕ D - это по сути числовой открытый ключ. ПОЛЕ I - числовой код состояния. Цель состоит в том, чтобы отследить любой случай, когда к одному открытому ключу прикреплены два кода состояния.
Ниже моя лучшая попытка на данный момент. Он возвращает набор, который я хочу, но есть некоторые дополнительные открытые ключи, которые возвращаются. Кто-нибудь может указать мне правильное направление?
SELECT DISTINCT PREP1.FIELD_D, PREP1.FIELD_I
FROM (SELECT [MASTER].FIELD_D AS FIELD_D, [MASTER].FIELD_I AS FIELD_I
FROM [MASTER] GROUP BY [MASTER].FIELD_D, [MASTER].FIELD_I) AS
PREP1
INNER JOIN (SELECT [MASTER].FIELD_D AS FIELD_D, [MASTER].FIELD_I AS
FIELD_I
FROM [MASTER]
GROUP BY [MASTER].FIELD_D, [MASTER].FIELD_I
HAVING COUNT(*) > 1) AS PREP2 ON PREP1.FIELD_D =
PREP2.FIELD_D
GROUP BY PREP1.FIELD_D, PREP1.FIELD_I
РЕДАКТИРОВАТЬ: я взбил этот маленький пример. Столбцы A и B представляют тип данных, которые у меня будут. В столбце C перечислены те, которые я хочу вернуть. Вы заметите, что в столбце A есть пример дубликатов, но их связанное значение в столбце B одинаково, поэтому они мне не нужны.
<html>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td,
th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
<body><table><tr><th>COLUMN A</th><th>COLUMN B</th><th>COLUMN C</th></tr><tr><td>00000000</td><td>0</td><td>""</td></tr><tr><td>00000000</td><td>0</td><td>""</td></tr><tr><td>00000001</td><td>1</td><td>""</td></tr><tr><td>00000002</td><td>1</td><td>RETURN</td></tr><tr><td>00000002</td><td>2</td><td>RETURN</td></tr><tr><td>00000003</td><td>1</td><td>""</td></tr><tr><td>00000004</td><td>1</td><td>""</td></tr><tr><td>00000004</td><td>1</td><td>""</td></tr><tr><td>00000005</td><td>3</td><td>""</td></tr><tr><td>00000006</td><td>3</td><td>""</td></tr><tr><td>00000007</td><td>0</td><td>""</td></tr><tr><td>00000008</td><td>0</td><td>""</td></tr><tr><td>00000009</td><td>1</td><td>RETURN</td></tr><tr><td>00000009</td><td>2</td><td>RETURN</td></tr><tr><td>00000010</td><td>0</td><td>""</td></tr></table></body></html>