У меня есть таблица хобби, чей фрагмент выглядит следующим образом:значение SQL суммы из тех же таблиц
Name Activity Hours
John Hiking .5
Sam Cycling .5
Sam Swimming 1
Sam Hiking .5
John Running 1
Sam Sailing 1
Для каждого человека X в (X, Y), я хотел бы найти сумму часов где X и Y не имеют общего. Например, если John = X и Sam = Y, то это даст 1, так как Running - единственное действие, которое у Джона у Сэма нет.
Мой код выглядит следующим образом:
select a.Name, b.Name, sum(a.Hours)
from Hobby a, Hobby b
where a.Name <> b.Name and a.Activity <> b.Activity
group by a.Name, b.Name;
Однако, это дало мне неправильный ответ. Что не так с моим кодом?
Это не симметричными 'часов (X, Y) = часы (Y, X) 'в общем случае, измените' '' 'на'! = ' – Laurence