2014-01-22 3 views
1

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

select Category.Name 
    from Product 
    inner join ProductCategory on ProductCategory.PID=Product.PID 
    inner join ProductMaterial on ProductMaterial.PID=Product.PID 
    left join Category on Category.NodeId=ProductCategory.CID 
    where PID in('2233','4432','5665','1252') 
    group by ProductCategory.CID, ProductMaterial.MID,Category.DanishName 

запрос работает результат этого запроса

Electronics 
Electronics 
Electronics 
Home and Garden 

Я хочу только выбрать наиболее номер категории, здесь мне нужна только электроника. Как получить это. Спасибо за помощь ... >>

+0

Либо MySQL или SQL-сервер, пожалуйста, – StuartLC

ответ

2

Попробуйте следующее:

MySQL

SELECT A.name, COUNT(A.name) nameCnt 
FROM (SELECT C.Name 
     FROM Product P 
     INNER JOIN ProductCategory PC ON PC.PID=P.PID 
     INNER JOIN ProductMaterial PM ON PM.PID=P.PID 
     INNER JOIN Category C ON C.NodeId=PC.CID 
     WHERE PID IN('2233','4432','5665','1252') 
     GROUP BY PC.CID, PM.MID, C.DanishName 
    ) AS A 
GROUP BY A.name 
ORDER BY nameCnt DESC LIMIT 1; 

SQL Server

SELECT TOP 1 A.name, COUNT(A.name) nameCnt 
FROM (SELECT C.Name 
     FROM Product P 
     INNER JOIN ProductCategory PC ON PC.PID=P.PID 
     INNER JOIN ProductMaterial PM ON PM.PID=P.PID 
     INNER JOIN Category C ON C.NodeId=PC.CID 
     WHERE PID IN('2233','4432','5665','1252') 
     GROUP BY PC.CID, PM.MID, C.DanishName 
    ) AS A 
GROUP BY A.name 
ORDER BY nameCnt DESC; 
+0

Неправильный синтаксис около предела. получает – Arun

+0

@Arun Какой сервер вы используете? –

+0

SQL2012 Server ...... – Arun

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