0

我们有 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;
4

2 回答 2

1

编辑

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

  1. 进行一个联合查询,将所有 50 个表组合在一起。结果应该是每个表 1 行:

    选择“5000028”作为 QCPASS,Count () FROM 5000028 组 by QCPASS
    UNION
    选择“5000029”作为 QCPASS,Count () FROM 5000029 组 by QCPASS
    UNION...

  2. 现在进行“Crosstab”查询,这在 Access 中非常简单。首先,进行新查询并选择顶部的交叉表选项。此查询将使用联合查询作为其源。

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

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

  5. 第三列将是 Expr1。将此设置为您的“价值”。

运行此程序时,您应该会看到一个 1 行表,每个源表都有 1 列。

于 2013-07-03T16:18:15.237 回答
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 .. 
于 2013-07-03T16:37:41.503 回答