2015-04-11 2 views
2

Я пытался следующий запрос, используя группу по и внутреннее соединение положение в asp.net:не получают должного выхода в группе по п

SELECT tblVendorItem.Name AS Product, 
     tblEventItem.Quantity * tblEventItem.Price AS Sale 
FROM 
     tblEventService 
INNER JOIN tblEventItem ON 
     tblEventService.EventServiceID = tblEventItem.EventServiceID 
INNER JOIN tblVendorItem ON 
     tblVendorItem.VendorItemID = tblEventItem.VendorItemID 
WHERE   
     (tblEventService.VendorID = 2) 
GROUP BY 
     tblVendorItem.Name, tblEventItem.Quantity, tblEventItem.Price 

Исполняя это, что я получаю является:

enter image description here

то, что я действительно хочу, продукт должен быть не повторялись, а общий объем продаж должен ком е!

Для например: Mercedes 75

Может ли один помочь мне?

Я прилагаю базу данных также:

enter image description here

+0

Возможно, 'sum (tblEventItem.Quantity * tblEventItem.Price) AS Price' и удалить группу по условию в' tblEventItem.Quantity, tblEventItem.Price' –

+0

это не работает! @abhik –

ответ

1
INNER JOIN tblEventItem ON 
    tblEventService.EventServiceID = tblEventItem.EventServiceID 

GROUP BY 
    tblVendorItem.Name, tblEventItem.Quantity, tblEventItem.Price 

В группе по статье удалите tblEventItem.Quantity, tblEventItem.Price. Следовательно, ваш запрос должен быть изменен в двух местах. Во-первых, SUM (цена * количество) и второе:

GROUP BY 
    tblVendorItem.Name 

Причина заключается в следующем: Group By X означает поставить все с одинаковым значением для X в одной группе.

Группа По X, Y означает, что все те, которые имеют одинаковые значения для X и Y в одной группе.

Группа К X означает поместить все те, которые имеют одинаковое значение для X в одной группе.

Группа В соответствии с X, Y, Z означает, что все те, которые имеют одинаковые значения для X, Y и Z в одной группе. Надеюсь, это поможет. Using group by on multiple columns Kudos! :)

+0

Подчеркнутые атрибуты - это внешний ключ, и таблица объединяется с использованием только первичного ключа! Более того, использование SUM не меняет выход. @Sonia –

+0

У каждой из этих таблиц есть первичные ключи? –

+0

Кстати, мои предыдущие ответы о первичном ключе были неправильными. Я тестировал свои таблицы. Даже если в таблицах нет первичного ключа, работает group by clause. Я надеюсь, что мой ответ решает вашу проблему. –

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