2016-09-06 3 views
-1

enter image description hereПолучить отличную строку из таблицы

У меня есть таблица Masterproduct, и я хочу, чтобы получить только одну строку для каждого «ProductDivisionID» вместе с чеком ли «StatusID» любой строке 2 для конкретного 'ProductDivisionID'

+0

, если вы хотите, чтобы product_id также был выбран, вы используете функцию GROUP BY и агрегацию для требования, чтобы она не работала просто, если вы публикуете свои выходные данные, я могу предложить ее правильно. – Susang

ответ

1

Если я правильно прочитал ваш вопрос, вам нужен список значений productDivisionID для тех разделов, где в любой строке есть StatusID из 2. В этом случае, вы можете использовать агрегацию по подразделениям, и подсчитать количество вхождений:

SELECT productDivisionID 
FROM Masterproduct 
GROUP BY productDivisionID 
HAVING SUM(CASE WHEN StatusID = 2 THEN 1 ELSE 0 END) > 0 

Или еще проще, просто использовать WHERE условия для удаления записей, где StatusID не 2, а затем SELECT DISTINCT, чтобы получить перечень подразделений:

SELECT DISTINCT productDivisionID 
FROM Masterproduct 
WHERE StatusID = 2 
0

Это дает столбцы ProductID как максимальное значение и StatusID как 2 для каждого productDivisionID

SELECT productDivisionID, MAX(productID) as productID , MAX(StatusID) As StatusID 
FROM Masterproduct 
WHERE StatusID = 2 
GROUP BY productDivisionID 
Смежные вопросы