2016-06-26 17 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 

私のSQLを試してみましたが、これは私がこれは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 
に表示する結果たい

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 

colums

+0

を試してみてください。 'Left'はSQLキーワードです。' SUM(YukyuIn)-SUM(YukyuOut)As [Left] ' – TnTinMn

+0

はSUM(YukyuIn)-SUM(YukyuOut)として試行されましたが、YukyuLeftとしてエラーが発生しました。選択リストでは、集計関数またはGROUP BY句のいずれにも含まれていないため、「InputDate」は無効です。 –

+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で多くを検索し、解決策を得ていない、私はここで試して、分でこの答えを得る。 –