2016-01-27 4 views
-1
Select 
    CIDetail.Itemname, 
    sum(CIDetail.TaxAmount+ CIDetail.LineAmount) As [TotalAmount] 
From 
    CIDetail (Nolock) 
    INNER JOIN CIHeader On CIDetail.InvoiceNo= CIHeader.InvoiceNo 
Where 
    CIHeader.InvoiceDate Between '2010-04-01' AND '2014-04-01' 
Group By 
    CIDetail.Itemname 
+1

Ваш вопрос непонятен. Покажите пример данных и как вы хотите их видеть. – AaA

+0

Теперь im fatching this data Между '2010-04-01' AND '2014-04-01', но теперь я хочу сравнить этот год данных мудрый – SANJOG

+0

Вы имеете в виду все данные, например. 2010? – AaA

ответ

0

Добавить к запросу запрос по предложению. Здесь, как вы говорите, что вы хотите его по дате, я буду считать, что у одного имя элемента есть только один номер InvoiceDate. И таким образом его max будет иметь такое же значение. Вы должны будете сделать это следующим образом

Select CIDetail.Itemname, 

sum(CIDetail.TaxAmount+ CIDetail.LineAmount) As [TotalAmount], 

From CIDetail (Nolock) INNER JOIN CIHeader 

On CIDetail.InvoiceNo= CIHeader.InvoiceNo 

Where CIHeader.InvoiceDate Between '2010-04-01' AND '2014-04-01' Group By 

CIDetail.Itemname 

Order By max(CIHeader.InvoiceDate) ASC 
+1

«CIHeader.InvoiceDate» недействителен в предложении ORDER BY, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. – SANJOG

+0

@SANJOG спасибо! Я пропустил это. Сделал изменения. Положите его в функцию Agg –

0

Иметь производную таблицу, где вы используете ANSI SQL, EXTRACT получить год часть из даты, а также добавлять суммы вместе. На основном уровне вы GROUP BY как ITEMNAME и год:

Select Itemname, "year", SUM(Amount) as TotalAmount 
from 
(
    CIDetail.Itemname, 
    extract(year from CIHeader.InvoiceDate) as "year", 
    CIDetail.TaxAmount + CIDetail.LineAmount As Amount 
From 
    CIDetail (Nolock) 
    INNER JOIN CIHeader On CIDetail.InvoiceNo= CIHeader.InvoiceNo 
) dt 
Group By 
    Itemname, "year" 

Нет DBMS помеченных в вопросе, но если СУБД не поддерживает EXTRACT, попробуйте YEAR(CIHeader.InvoiceDate), например, или что-то еще.

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