在访问中查询多个表

时间:2013-07-03 16:07:53

标签: sql ms-access

我们需要50个表来查询所有存在的列。此列是一个复选框。我们需要计算每个表检查的数量和未检查的数量。似乎没有得到1个查询来计算结果并显示每个表而不是乘法或组合结果。 我们每个表需要1列来显示已检查和未检查的计数。 感谢

SELECT "Table1" , Count('qcpass') AS column 
    FROM 5000028 
    GROUP BY [5000028].qcpass
union 
SELECT "Table2",count('qcpass')
    FROM 5000029 
    Group By [5000029].qcpass;

2 个答案:

答案 0 :(得分:1)

修改

根据您的反馈,试试这个(抱歉,没意识到您希望每个表有1列):

  1. 创建一个组合了所有50个表的联合查询。结果应该是每个表1行:

    选择“5000028”作为QCPASS,计数()来自QCPASS的5000028组 UNION
    选择“5000029”作为QCPASS,计数()来自QCPASS的5000029组 UNION ...

  2. 现在制作一个“交叉表”查询,这在Access中非常简单。首先,创建一个新查询并选择顶部的交叉表选项。此查询将使用union查询作为其源。

  3. 这将有3列。第一个是常量值(如果你愿意,你可以使用“Totals”,它只是一个占位符)。将其设置为“行标题”。

  4. 第二栏将是QCPass。将其设置为“列标题”。

  5. 第3列将是Expr1。将此设置为“值”。

  6. 当你运行它时,你会看到一个1行的表,每个源表有1列。

答案 1 :(得分:0)

SELECT columna, 'tablename1' from tablename1 where ..
UNION
SELECT columna, 'tablename2' from tablename2 where ..
UNION
SELECT columna, 'tablename3' from tablename3 where ..
...
SELECT columna, 'tablename4' from tablename50 where ..