доступ к запросу для фильтрации и комбинирования - PullRequest
0 голосов
/ 13 ноября 2009

у меня есть две таблицы доступа

tableA

num  count
1    7
2    8
3    9
4    9
5    13
6    6


tableB

num  count
0    1
1    14
2    12
3    5
4    5
5    11
6    5

как я могу создать запрос доступа, который будет игнорировать числа, число которых меньше 6 в любой из двух таблиц. то есть 0,3,4 и 6 и создайте таблицу с остальными числами, отсортированными по объединенному количеству

tableC

num    count
5      24
1      21
2      20

любая помощь приветствуется

Ответы [ 3 ]

1 голос
/ 13 ноября 2009

Может быть ....

SELECT a.num, a.count + b.count
FROM   tableA a
JOIN   tableB b on b.num = a.num
WHERE  a.count >= 6 
AND    b.count >= 6

это будет включать числа, которые находятся как в A, так и в B. Чтобы включить числа с количеством> = 6, которые находятся в одной таблице, а не в другой, вам нужно будет добавить Join и «isnull» для a.count и b.count значения. то есть; isnull (количество, 0) + isnull (количество, 0)

0 голосов
/ 13 ноября 2009

Вы можете попробовать что-то вроде этого

SELECT DISTINCT tableA.num, [tableA].[val]+[tableB].[val] AS Expr1
FROM tableA INNER JOIN tableB ON tableA.num = tableB.num
WHERE (((tableA.val)>=6) AND ((tableB.val)>=6));
0 голосов
/ 13 ноября 2009

Как насчет

SELECT x.Num, x.Count FROM (
  SELECT Num, Count(*) 
  FROM tableA
  GROUP BY Num
  HAVING Count(*)>6

  UNION ALL

  SELECT Num, Count(*) 
  FROM tableB
  GROUP BY Num
  HAVING Count(*)>6) x

Или, если count - это поле, а не расчет:

SELECT x.Num, x.Count FROM (
  SELECT Num, Count
  FROM tableA
  WHERE Count>6

  UNION ALL

  SELECT Num, Count
  FROM tableB
  WHERE Count>6) x
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...