2014-01-22 52 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服務器

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服務器...... – Arun