Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом / 4 сообщений из 4, страница 1 из 1
10.01.2016, 14:26
    #39144073
Vehovr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Здравствуйте, есть таблица, встречи двух игроков А и Б, нужно найти в таблице их общего противника и вывести встречи игрока А с этим общим противником и игрока Б с общим противником.
ID1ID2121442

Пока в голову приходит только что-то примерно такое, но вылезает ошибка, подскажите пожалуйста, как это реализовать, хотя бы как найти список общих противников
Код: sql
1.
2.
3.
4.
5.
SELECT ID1 FROM ((SELECT distinct  ID1 FROM tbl WHERE ID1=1 or ID2=1)
union(SELECT distinct ID2 FROM tbl WHERE ID1=1 or ID2=1)) as q1 
join ((SELECT distinct ID1 FROM tbl WHERE ID1=2 or ID2=2)
union(SELECT distinct ID2 FROM tbl WHERE ID1=2 or ID2=2)) as q2 on q1.ID1=q2.ID1
;
...
Рейтинг: 0 / 0
10.01.2016, 17:35
    #39144103
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
Vehovr,
как то так :)
...
Рейтинг: 0 / 0
10.01.2016, 17:59
    #39144109
Vehovr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом
guest_rusimport, спасибо)
...
Рейтинг: 0 / 0
11.01.2016, 05:36
    #39144208
Помогите с запросом
Vehovr, для игроков А и Б, имеющих ID соответственно IDA и IDB, общих соперников в таблице Tab можно найти одним запросом
Код: sql
1.
2.
3.
4.
5.
6.
PARAMETERS IDA Long, IDB Long;
SELECT IIf(ID1 In (IDA,IDB),ID2,ID1) AS IDRiv
FROM Tab
WHERE ID1 In (IDA,IDB) Xor ID2 In (IDA,IDB)
GROUP BY IIf(ID1 In (IDA,IDB),ID2,ID1)
HAVING Sum(IIf(ID1 In (IDA,IDB),ID1,ID2)=IDA)<0 And Sum(IIf(ID1 In (IDA,IDB),ID1,ID2)=IDB)<0


или такой модификацией предыдущего запроса
Код: sql
1.
2.
3.
4.
5.
6.
7.
PARAMETERS IDA Long, IDB Long;
SELECT IDRiv FROM
(SELECT IIf(ID1 In (IDA, IDB), ID1, ID2) As IDAB, IIf(ID1 In (IDA, IDB), ID2, ID1) As IDRiv
FROM Tab
WHERE ID1 In (IDA, IDB) Xor ID2 In (IDA, IDB)) As Q
GROUP BY IDRiv
HAVING Sum(IDAB=IDA)<0 And Sum(IDAB=IDB)<0
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]