0

DB2 に次のクエリがありますが、機能していません。問題は max 関数ですが、修正方法がわかりません。

SELECT CAR.VI max(CAR.ID),
TU.SOLD 
FROM P.CAR CAR, A.TU TU WHERE CAR.VI = TU.VI

'Table1'                                                              ' VI:     USER:  DATE:      DATE2:     STATUS:   ID'
' 2T1BU4  DEALER 2012-10-15 2012-10-15 CER       1 '
' 2T1BU4  DEALER 2012-10-15 2012-10-15 CER       2 '
' 2T1BU3  DEALER 2012-10-15 2012-10-15 DRA       1 '


' VI:     SOLD:'
' 2T1BU4  Y' 
' 2T1BU3  N'        

クエリから受け取りたいのは次のようなものです。

    ' VI:     USER:  DATE:      DATE2:     STATUS:   ID  SOLD'
' 2T1BU4  DEALER 2012-10-15 2012-10-15 CER       2   Y   '
' 2T1BU3  DEALER 2012-10-15 2012-10-15 DRA       1   N   '      

Max IDを持つVIを取得したい

4

3 に答える 3

2

あなたは多くの詳細を提供しませんでしたが、私はあなたがこれを望んでいると推測します:

SELECT CAR.VI, max(CAR.ID), TU.SOLD 
FROM P.CAR CAR
INNER JOIN A.TU TU 
    ON CAR.VI = TU.VI
GROUP BY CAR.VI, TU.SOLD 

または、サブクエリを使用できます。

select c1.vi, c1.id, tu.sold
from 
(
    select max(id) id, vi
    from P.CAR
    group by vi
) c1
inner join A.TU TU 
    on c1.VI = TU.VI
于 2012-10-15T16:34:04.043 に答える
0

あなたが何を望んでいるかは 100% わかりませんが、各 VI の MAX(ID) を持つレコードが欲しいようです。次のようなことをする必要があります:

SELECT C1.VI, C1.ID, TU.SOLD FROM P.CAR CAR C1, A.TU TU WHERE C1.VI = TU.VI
WHERE C1.ID = (SELECT MAX(C2.VI) FROM P.CAR C2 WHERE C1.VI = C2.VI) 
于 2012-10-18T11:49:54.540 に答える
0

共通テーブル式を使用したバリエーション:

with cte (vi, id) as 
(SELECT vi, max(ID)
 FROM P.CAR
 group by vi)
select cte.vi, cte.id, tu.sold
from cte INNER JOIN A.TU TU 
ON cte.VI = TU.VI
于 2012-10-16T19:51:04.323 に答える