Для всех записей запрос суммировать две записи из одной таблицы - PullRequest
0 голосов
/ 30 октября 2018

В настоящее время я создаю свою собственную базу данных для своего хобби в стиле фэнтези. Запрос, который я хотел бы сделать, - найти все комбинации каждой записи с другой записью. Например, столбцами являются имя, зарплата и общее количество баллов. Я хочу, чтобы запрос отображал оба имени вместе в столбце и их общее количество баллов. У меня есть одно условие, я хотел бы, чтобы сумма их двух зарплат была ниже 12000.

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

MS Access выражает cross join по старинке, используя запятую. Это только одна из многих нестандартных конструкций в MS Access.

Так что вы можете сделать:

SELECT t1.name as name1, t2.name as name2,
       (t1.points + t2.points) AS point_total
FROM t as t1,
     t as t2
WHERE t1.name < t2.name AND
      (t1.salary + t2.salary) < 12000; 
0 голосов
/ 30 октября 2018

Мы можем попробовать перекрестное объединение ваших таблиц с ограничением, чтобы гарантировать, что мы не получим дублирующиеся пары:

SELECT
    t1.name player1, 
    t2.name player2,
    t1.points + t2.points AS point_total
FROM yourTable t1
INNER JOIN yourTable t2
    ON t1.salary * 0 = t2.salary * 0
WHERE
    t1.name < t2.name AND
    t1.salary + t2.salary < 12000;

Объяснение предложения ON состоит в том, что Access не поддерживает формальную операцию перекрестного соединения. Но мы можем смоделировать его, выполнив внутреннее соединение с условием, которое будет справедливо для каждой комбинации записей из обеих таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...