0

oledb接続を使用するac#アプリを開発しています。

私のテーブルは次のとおりです

支払い

Id   RemFee
1     2000
2     2500
1     1500
3     8000
3     5000
2      500
3        0

各IDの最後のレコードのみを選択して確認し、Remfeeを0と比較したいと思います。0より大きい場合は、レコードを印刷します。つまり、私の期待される結果は次のとおりです。

Id  
1    
2     

このチェックでは、RemFee1500を使用してId1に対して行われます(Id1を使用した最後のレコードであるため)。0よりも大きいため、レコードが印刷されます。

4

3 に答える 3

2

MSQ SQL Server を使用していて、最後に挿入された行を知る行がないと推測します。このコードを試してください:

SELECT Id, Min(RemFee) AS RemFee
  FROM payment
 WHERE RemFee > 0
 GROUP BY ID

SQL Fiddle の作業コード サンプルを次に示します。

編集

ここでIDフィールドのみが必要な場合は、 SQL Fiddleコードとともに1つのオプションがあります

SELECT myTable.Id
  FROM (SELECT Id as ID, Min(RemFee) AS Remfee
          FROM payment
         WHERE RemFee > 0
         GROUP BY ID
        ) myTable
于 2012-10-22T07:13:36.987 に答える
1
SELECT ID,MIN(REMFEE) FROM payment WHERE ID NOT IN (SELECT ID FROM  payment  WHERE REMFEE  = 0) GROUP BY ID
于 2012-10-22T07:05:13.090 に答える
0
Select 
   id, Min(RemFee) 
from payment 
where RemFee > 0 
group by id
于 2012-10-22T07:10:42.353 に答える