2017-12-16 14 views
0

안녕하세요, 저는 SQL 쿼리를 가지고 있으며, 한 행을 계산하지 않습니다. Spend라고 불리는, 당신은 바이올린에서 그것을 볼 수 있습니다. 내 코드에 어떤 문제가 있습니까? 난 그냥 바이올린 http://sqlfiddle.com/#!9/3623b1/2내 SQL 쿼리에 문제가 있습니다. SUM 그룹 by

당신이 좀 도와 주 시겠어요을 만든

Month ID GOT SPEND 
1  1 100 50 
2  1 500 200 
1  2 200 50 

기본 테이블이 필요하십니까?

select 
    keliones_lapas.Vairuot_Id, 
    MONTH(keliones_lapas.Data_darbo), 
    sum(keliones_lapas.uzdarbis) as Got, 
    coalesce(Suma, 0) AS Spend, 
    (sum(keliones_lapas.uzdarbis) - coalesce(Suma, 0)) Total 
from keliones_lapas 
    left join (
     select Vairuotas, 
       MONTH(Data_islaidu) as Data_islaidu, 
       sum(Suma) as Suma 
    from islaidos 
    group by Vairuotas, MONTH(Data_islaidu)) islaidos 
    on keliones_lapas.Vairuot_Id = islaidos.Vairuotas 
    and MONTH(keliones_lapas.Data_darbo) = MONTH(islaidos.Data_islaidu) 
group by keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo), Suma 
order by keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo); 

답변

1

TRY THIS : 여기

는 쿼리입니다 당신은 다시는 NULL를 반환하고 달과 일치하지 않는, 그래서 가입에 달에서 검색 할 MONTH를 사용하여 다음 하위 쿼리에 달 이미 복용 keliones_lapas

+0

최고입니다! 고마워! 예를 들어 올해도 추가하고 싶다면 효과가 있습니까? –

+0

물론이 경우에도 'MONTH'또는 'YEAR'또는 'DAY'또는 'any date combination'과 같이 작동해야합니다. 어떤 합병증이라도 메시지를 남길 수 있습니다. – Susang

+0

나는 여기 새로 왔어. 정확히 어디에서 어떻게 메시지를 남길 수 있니? :) –