SQL複数値の検索

SVCodeとLocationCodeという名前のフィールドを持つテーブルがあります。列に記載されているすべてのSVCodeに焦点を当て、そのLocationCodeが異なるかどうかを確認することができます。

例:

LocationCode:         

107654403      
107654403    
107653802   
107653802   
107656502  
126515001  
128030852  
126515001

SVCode:  

STN10  
STN10  
STN10  
STN10  
STN10  
STN10  
GIN04      
GIN04  
GIN04  

各行は一致します。 STN10などのLocationCode 107654403などがあります。

基本的にMultipleLocationsという名前の新しい列を作成したいのですが、SVCodeに2つ以上の異なるLocationコードがある場合、MultipleLocation列を1に設定してください。else 0

そうする上で助けとなる?

1
別のテーブルの LocationCode 列と SVCode 列はありますか?そうであれば、それに対応するものをどのように知っていますか?また、上のサンプルデータの出力がどのようなものになるかの例を挙げることができますか?
追加された 著者 mellamokb,
あなたの質問を編集して、あなたのテーブルの構造、あなたのデータのいくつか、そして予想される結果を表示できますか?
追加された 著者 Sylvain Leroux,
私は既存のデータベースを変更して、新しいmultiplelocationsカラムを追加しました。私はdbo.IndxServとdbo.Serviceの2つのテーブルを持っています。 SVCode上でIndxServとServiceを内部結合する必要があると仮定します(彼らは両方ともそれを持っています)。 dbo.IndxServはSvcode、Description、MultipleLocation列を持っていますが、何も変更されていないので、すべて0に設定されています。 Dbo.ServiceにはLocationCodeとSVCodeも含まれています。
追加された 著者 user659745,
私は既存のデータベースを変更して、新しいmultiplelocationsカラムを追加しました。私はdbo.IndxServとdbo.Serviceの2つのテーブルを持っています。 SVCode上でIndxServとServiceを内部結合する必要があると仮定します(彼らは両方ともそれを持っています)。 dbo.IndxServはSvcode、Description、MultipleLocation列を持っていますが、何も変更されていないので、すべて0に設定されています。 Dbo.ServiceにはLocationCodeとSVCodeも含まれています。
追加された 著者 user659745,

8 答え

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

SELECT SVCode
FROM (SELECT DISTINCT LocationCode, SVCode
      FROM Table
      )sub
GROUP BY SVCode
HAVING COUNT(*) >1
1
追加された

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

SELECT SVCode
FROM (SELECT DISTINCT LocationCode, SVCode
      FROM Table
      )sub
GROUP BY SVCode
HAVING COUNT(*) >1
1
追加された
select  distinct SVCode 
from Table1 t1
where exist
(select LocationCode from table1 where t1.SVCode  = SVCode and 
 LocationCode != t1.LocationCode );

これは、複数の場所を持つすべてのSVコードのリストを提供します。

0
追加された
select  distinct SVCode 
from Table1 t1
where exist
(select LocationCode from table1 where t1.SVCode  = SVCode and 
 LocationCode != t1.LocationCode );

これは、複数の場所を持つすべてのSVコードのリストを提供します。

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
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
0
追加された

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

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

がんばろう。

0
追加された

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

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

がんばろう。

0
追加された