1

SVCode と LocationCode という名前のフィールドを持つテーブルがあります。列にリストされているすべての SVCode の 1 つに注目して、それらの LocationCode が異なるかどうかを確認できるようにしたいと考えています。

例:

LocationCode:         

107654403      
107654403    
107653802   
107653802   
107656502  
126515001  
128030852  
126515001

SVCode:  

STN10  
STN10  
STN10  
STN10  
STN10  
STN10  
GIN04      
GIN04  
GIN04  

各行が一致します。LocationCode 107654403、STN10 など。

基本的に MultipleLocations という新しい列を作成したいのですが、SVCode に複数の異なる Location コードがある場合は、MultipleLocation 列を設定します = 1 それ以外の場合は 0

そうするのに何か助けはありますか?

4

4 に答える 4

1

次のようなものを使用して、複数の場所を持つものを識別できます。

SELECT SVCode
FROM (SELECT DISTINCT LocationCode, SVCode
      FROM Table
      )sub
GROUP BY SVCode
HAVING COUNT(*) >1
于 2013-06-25T16:01:19.777 に答える
0

これはうまくいくはずです。

UPDATE t1
SET MultipleLocation = 1
WHERE SVCode IN (
    SELECT DISTINCT SVCode FROM t1
    WHERE COUNT(SVCode) > 1
    GROUP BY SVCode
)

幸運を。

于 2013-06-25T16:16:08.847 に答える
0

列名を自由に変更できますが、

SELECT l.*, s.*, IF(COUNT(s.id) > 1,1,0) AS multipleLocation FROM LocationCode l
INNER JOIN SVCode s ON s.locationCodeId = l.id
GROUP BY l.id
于 2013-06-25T16:02:53.280 に答える
0
select  distinct SVCode 
from Table1 t1
where exist
(select LocationCode from table1 where t1.SVCode  = SVCode and 
 LocationCode != t1.LocationCode );

これにより、複数の場所を持つすべての SVcode のリストが表示されます。

于 2013-06-25T16:06:04.893 に答える