2013-12-23 2 views
-2

Привет У меня есть это в моей базе данных, и я хочу отображать только одно имя каждой компании из базы данных.Как отобразить 1 имя из базы данных

Это, например,

RecordID | CompanyName| OrderDate 
1  | Java  | 1 Dec 2013 
2  | Java  | 3 Dec 2013 
3  | ASP  | 10 Dec 2013 

Результат я хочу:

Java   
ASP   

и не отображать

Java Java ASP

Как это было сделано?

+5

Конечно, это может быть сделано. Изучите, как присоединиться к таблицам, групповым записям и подсчету записей, которые вы сгруппировали. что ты уже испробовал? –

+0

Я знаю, что только я не могу получить результат только – user3130996

ответ

3
SELECT CompanyName, COUNT(*) as TotalOrder 
FROM Orders o 
INNER JOIN Company c ON c.CompanyID = o.CompanyID 
GROUP BY c.CompanyName 
ORDER BY COUNT(*) DESC 
+0

Спасибо за вашу помощь сейчас. Я знаю, почему мой не может, потому что я пропустил заказ, спасибо за помощь. – user3130996

3

Вы должны попробовать

SELECT t1.CompanyName, COUNT(*) AS TotalOrder 
FROM table1 t1 INNER JOIN table2 t2 
    ON t1.CompanyID = t2.CompanyID 
GROUP BY t1.CompanyID 
ORDER BY COUNT(*) DESC 
+0

Как вы можете выбрать t1.CompanyName, если вы группируете Идентификатор компании? – Vland

+0

@Vland: взгляните на эту ссылку http://sqlfiddle.com/#!2/2be40/1 – Marco

+0

Это интересно, в SQL Server и PostgreSQL это дает ошибку: столбец «table1.CompanyName» недопустим в выборе потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – Vland

3

Это только вопрос группирования и упорядочения по количеству:

select c.CompanyName, Count(*) as TotalOrder 
from companytable c 
inner join ordertable o on c.CompanyID = o.CompanyID 
group by c.CompanyName 
order by count(*) desc 
Смежные вопросы