2014-11-26 3 views
1

У меня есть что-то вроде этого:SQL Server: Выберите в Select

Select 
    sum(spareparts), 
    month(calculationdate) 
from 
    cz_axnmrs_calculations 
where 
    CASE_ID in (select case_id 
       from cz_axnmrs_cases 
       where insurer_memberid = 'MM-O-5B57274F') 
    and YEAR(calculationdate)='2014' 
group by 
    month(calculationdate) DESC 

Это круто, но мне нужно, чтобы изменить его немного более конкретными. Правильно, он получает данные от всех запасных частей, и мне нужно получить его только от ПОСЛЕДНЕГО! Поэтому вместо того, чтобы считать 3 результата через SUM, просто отобразите LAST один

Я пробую написать еще один выбор для суммирования скобок, но он заканчивается синтаксисом SQL с ошибкой. Может ли кто-нибудь помочь мне написать это заявление?

Благодаря

+1

можете ли вы показать некоторые данные образца? –

+0

Результат: 'Выберите сумму (запасные части), месяц (расчет) из cz_axnmrs_calculations, где CASE_ID в (выберите case_id из cz_axnmrs_cases где insurer_memberid = 'MM-O-5B57274F') и YEAR (расчет) = '2014' группа по месяцам (расчетдат) ' IS: http://www.upnito.sk/0/3f3rn6taqbg6rs29p8wj634jbwrykg5b.png – Andurit

+0

Вы поняли это? Что вы хотите увидеть из этого результата? – paqogomez

ответ

0

Попробуйте добавить TOP 1 к первому ВЫБРАТЬ

0

, если вы имеете в виду последний из результата вы уже получили тогдашний

SELECT TOP 1 
    sum(spareparts), 
    month(calculationdate) 
from 
    cz_axnmrs_calculations 
where 
    CASE_ID in (select case_id 
       from cz_axnmrs_cases 
       where insurer_memberid = 'MM-O-5B57274F') 
    and YEAR(calculationdate)='2014' 
group by 
    month(calculationdate) 
ORDER month(calculationdate) desc 
0

Либо

SELECT TOP 1 
    sum(spareparts), 
    month(calculationdate) 
FROM 
    cz_axnmrs_calculations 
WHERE 
    CASE_ID in (select case_id 
       from cz_axnmrs_cases 
       where insurer_memberid = 'MM-O-5B57274F') 
    and YEAR(calculationdate)='2014' 
GROU BVY 
    month(calculationdate) DESC 

Or добавить еще одну дольку в группу по ... Memberid

0

Если показывать последнюю строку, что вы хотите сделать, вы можете попробовать это:

Используйте Order by <column> desc, а затем выбрать 1-й строки с помощью Top 1.

Вы также можете использовать ROW_NUMBER()