powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом
4 сообщений из 4, страница 1 из 1
Помогите с запросом
    #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
Помогите с запросом
    #39144103
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vehovr,
как то так :)
...
Рейтинг: 0 / 0
Помогите с запросом
    #39144109
Vehovr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
guest_rusimport, спасибо)
...
Рейтинг: 0 / 0
Помогите с запросом
    #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
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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