2009-08-25 6 views
0

У меня есть эта простая таблица OrdersGroup по запросу В SQL Server 2008 справочном

Orders 
    ------------- 
    OrderID 
    OrderDesc 
    OrderDate 
    OrderStatus 
    OrderAmount 

В сервере Sql в одном запросе как я получаю для каждого ORDERDATE: - TOTALNUMBER заказов с OrderStatus = 1, - TOTALNUMBER заказов с OrderStatus = 2

Благодаря

+0

Ваш вопрос четко сформулирован. Вы можете исправить это, прежде чем он изменится. – Cynthia

ответ

1
SELECT OrderDate, 
Sum(Case When OrderStatus = 1 Then 1 Else 0 End) AS TotalOrderStatusOne, 
Sum(Case When OrderStatus = 2 Then 1 Else 0 End) AS TotalOrderStatusTwo 
FRMO Orders 
GROUP BY OrderDate 

даст вам то, что вы хотите, если вы хотите его на одной строке за заказ. Тем не менее, становится бесполезным, если у вас слишком много значений для OrderStatus.

1

Не тестировался или что-нибудь, но вы пробовали просто выбрать счет из ваших групп?

Что-то вроде:

SELECT Count(OrderStatus) As Amount, OrderDate 
FROM Orders 
GROUP BY OrderStatus, OrderDate 
HAVING OrderStatus = 2 OR OrderStatus = 1 

Не уверен, что синтаксис, хотя или HAVING используется в SQL Server ..

0

К сожалению, я ищу что-то вроде этого:

ORDERDATE записей с OrderStatus = 1 записей с OrderStatus = 2 1-Aug-09 10 20 2-Август-09 20 10

Благодарности

+0

Лучше отредактировать свой вопрос, чем добавить ответ с более подробной информацией. –

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