SQL Значення декількох значень

У мене є таблиця з полями з назвою SVCode та LocationCode. Я хочу зосередитись на одному зі всіх SVCodes, перерахованих у стовпчику, і перевірте, чи їхній 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 ще 0

Будь-яка допомога на цьому?

1
Чи є стовпці LocationCode і SVCode в таблицях різних ? Якщо так, то як ви знаєте, з яким відповідає? Також, чи можете ви навести приклад того, який вихід повинен бути для ваших зразкових даних вище?
додано Автор mellamokb, джерело
Не могли б ви відредагувати своє запитання, щоб відобразити структуру таблиць, деякі ваші дані та очікуваний результат?
додано Автор Sylvain Leroux, джерело
Я змінював існуючу базу даних, щоб додати новий стовпець multiplelocations у. У мене є дві таблиці, одна з яких називається dbo.IndxServ, а інша - dbo.Service. Припускаю, що мені потрібно внутрішнє приєднання IndxServ та сервісу до SVCode (вони обидва мають це). dbo.IndxServ має у своєму розпорядженні стовпець Svcode, Description та MultipleLocation, але все це встановлено 0, оскільки я нічого не змінював. Dbo.Service має також LocationCode та SVCode.
додано Автор user659745, джерело
Я змінював існуючу базу даних, щоб додати новий стовпець multiplelocations у. У мене є дві таблиці, одна з яких називається dbo.IndxServ, а інша - dbo.Service. Припускаю, що мені потрібно внутрішнє приєднання IndxServ та сервісу до SVCode (вони обидва мають це). dbo.IndxServ має у своєму розпорядженні стовпець Svcode, Description та MultipleLocation, але все це встановлено 0, оскільки я нічого не змінював. Dbo.Service має також LocationCode та SVCode.
додано Автор user659745, джерело

8 Відповіді

Ви можете використовувати щось на зразок цього, щоб ідентифікувати користувачів з кількома місцями.

SELECT SVCode
FROM (SELECT DISTINCT LocationCode, SVCode
      FROM Table
      )sub
GROUP BY SVCode
HAVING COUNT(*) >1
1
додано

Ви можете використовувати щось на зразок цього, щоб ідентифікувати користувачів з кількома місцями.

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 );

це дасть вам список всіх SVcode з кількома місцями.

0
додано
select  distinct SVCode 
from Table1 t1
where exist
(select LocationCode from table1 where t1.SVCode  = SVCode and 
 LocationCode != t1.LocationCode );

це дасть вам список всіх SVcode з кількома місцями.

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
додано
IT KPI - Databases
IT KPI - Databases
162 учасників