2016-03-23 4 views
0

У меня есть запрос, который возвращает тонну столбцов, но для одного конкретного столбца (lp_num = идентификатор поддона) имеется дублирующее значение. Это полностью нормально, потому что другие 2 поля в одной записи имеют другое значение. В итоге:Что является самым простым способом выделить/выделить дубликаты записей запроса?

Запрос

t.lp_num  t.lot  t.qty 
A   lot_1  -141 
A   lot_2  -94 
B   lot_1  -235 
C   lot_1  -235 

В докладе, мне нужно, чтобы показать, что t.lp_num = A имеет 2 строки вместо стандартного 1 строку. Сначала я попытался использовать какое-то условное форматирование в выражении для цвета текстового поля, но не смог найти способ сравнения с другими записями в наборе результатов, например, MS Access. Затем я попытался создать новый столбец в результирующем наборе, который указывает, является ли строка уникальной на основе поля t.lp_num, выполнив COUNT(t.lp_num) и COUNT(DISTINCT t.lp_num), но оба метода вернули 1. Я надеялся, что он вернет 2 для записей с t.lp_num = A, чтобы показать, что эта запись имеет значение t.lp_num, повторяющееся дважды.

+0

Count (*) over (partition by t.lp_nm order by t.lp_num desc) ... он даст вам счет 2 для A и т. Д. ... на основе того, что вы можете покрасить свой TextBox – Veljko89

ответ

4

Я думаю, вы можете получить информацию, нужно с помощью функции окна:

select lp_num, lot, qty, count(*) over (partition by lp_num) as Num_lpnum 
from t; 

Для данных Num_lpnum бы 2 для строк «А» и 1 для других строк.

+0

Это давая мне ошибку: неправильный синтаксис рядом с '(' и неправильный синтаксис рядом с ключевым словом 'GROUP'. Я поставил:' COUNT (*) AS (partition BY t.lp_num) AS Num_lpnum'. Единственное изменение, которое я сделал, это для добавления префикса 't.' в' lp_num'. Я не уверен, что может вызвать ошибку «GROUP». – whatin1992

+0

О, я думаю, вы имели в виду 'count (*) OVER', правильно? – whatin1992

+0

@ whatin1992. Да спасибо. –

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