1

我有一个表,其中包含名为 SVCode 和 LocationCode 的字段。我希望能够专注于列中列出的所有 SVCode 并检查它们的 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 有多个不同的位置代码,则设置 MultipleLocation 列 = 1 else 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

对你的列名采取一些自由,但是

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

这应该有效。

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  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 回答