2016-06-26 5 views
0

Я пытаюсь заставить этот код работать.VB + SQL SUM с условием

SELECT InputDate  
     ,Number  
     ,Name  
     ,Sector  
     ,YukyuDate  
     ,YukyuIn  
     ,YukyuOut  
     ,ISNULL(SUM(YukyuIn), 0)-ISNULL(SUM(YukyuOut), 0)As YukyuLeft 
     ,Reason 
    FROM TYukyu 
    WHERE Number = '0011683963' 
GROUP BY Number 
ORDER BY InputDate 

я уже пробовал

SUM(YukyuIn-YukyuOut) As YukyuLeft 
SUM(YukyuIn)-SUM(YukyuOut) As YukyuLeft 

My SQL есть это colums

InputDate |Number|Name |Sector |YukyuDate |YukyuIn|YukyuOut|Reason 
------------------------------------------------------------------------- 
2016-06-26 11:50| 1 |User1|Sector1|2016-06-26| 10 |  |Test1 
2016-06-26 11:51| 1 |User1|Sector1|2016-06-26|  | 1 |Test2 
2016-06-26 11:52| 1 |User1|Sector1|2016-06-26|  | 1 |Test3 
2016-06-26 11:53| 2 |User2|Sector1|2016-06-26| 10 | 0 |Test4 
2016-06-26 11:54| 1 |User1|Sector1|2016-06-26|  | 1 |Test5 
2016-06-26 11:55| 3 |User3|Sector1|2016-06-26|  | 1 |Test6 

я хочу это приводит показать в DataGridView

InputDate |Number|Name |Sector |YukyuDate |YukyuIn|YukyuOut|YukyuLeft|Reason 
------------------------------------------------------------------------- 
2016-06-26 11:50| 1 |User1|Sector1|2016-06-26| 10 |  | 10  |Test1 
2016-06-26 11:51| 1 |User1|Sector1|2016-06-26|  | 1 | 9  |Test2 
2016-06-26 11:52| 1 |User1|Sector1|2016-06-26|  | 1 | 8  |Test3 
2016-06-26 11:54| 1 |User1|Sector1|2016-06-26|  | 1 | 7  |Test5 
+0

Это поможет, если вы описываете ошибку вы получили, если есть ошибка. Кроме того, 'Left' является ключевым словом SQL, попробуйте:' SUM (YukyuIn) -SUM (YukyuOut) As [Left] ' – TnTinMn

+0

попробовал как СУММ (YukyuIn) -SUM (YukyuOut) As YukyuLeft и все еще получил ошибку Column 'TYukyu. InputDate 'недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY. –

+0

Ваш выбор должен быть в разделе group by. Причина заключается в том, что группа по совокупности. Просто удалите группу, так как ваше предложение where обрабатывает его. – Codexer

ответ

0

попробовать этот

 SELECT InputDate  
       ,Number  
       ,Name  
       ,Sector  
       ,YukyuDate  
       ,YukyuIn  
       ,YukyuOut  
       ,SUM(isnull(YukyuIn,0)-isnull(YukyuOut,0)) 
over (partition by number order by InputDate) as YukyuLeft 
       ,Reason 
      FROM TYukyu 
      WHERE Number = '0011683963' 
     ORDER BY InputDate 


    ' 
+0

спасибо, что сработал безупречный. я много ищу в google и не получаю решения, а затем я попробовал здесь и в течение минут получить этот ответ. –

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