0

私は以下のようなクエリを持っています

select custref, tetranumber 
from
    (select * 
     from cdsheader h, custandaddr c 
     where h.custref=c.cwdocid and c.addresstype = 'C' )
where tetranumber = '034096'

目的は、2 番目の列に対応する 1 番目の列が 1 つだけあることです。

例: 034096 の最初の列は常に 2600135 である必要があります

034096 に 2600135 以外の値がないか確認したいです。

(私は Java 開発者であり、データの 1 対 n または n 対 n マッピングを回避する解決策を提案しましたが、DB(Oracle) に既に不良データがあるため、不良データがあるかどうかを確認して、データを削除することができます)

4

2 に答える 2

0

re:目的は、2 番目の列に対応する 1 番目の列が 1 つだけある ことです。どの行が返されるかを判断するには、MAX や MIN などの集計関数を実行する必要があります。

于 2012-11-21T17:05:01.760 に答える
0

返信ありがとうございます。

私は道を考え出しました、そしてここに行きます...

select custref, count(distinct(tetranumber)) from( select custref, tetranumber from cdsheader h, custandaddr c where h.custref=c.cwdocid and c.addresstype = 'C') count(distinct(tetranumber)) を持つ custref でグループ化>1

于 2012-11-26T15:53:39.967 に答える