Sql server 使用Excel的子查询';微软的查询
我正在尝试编写一个简单的子查询,在连接两个表之后,计算resultset中唯一报警ID的数量。i、 eSql server 使用Excel的子查询';微软的查询,sql-server,excel,Sql Server,Excel,我正在尝试编写一个简单的子查询,在连接两个表之后,计算resultset中唯一报警ID的数量。i、 e SELECT COUNT(DISTINCT ALARMTABLE.ID) FROM (SELECT ALARMTABLE.ID FROM ALARMTABLE) AS AA JOIN (SELECT ALARMDESCRIPTIONTABLE.DESCRIPTION FROM ALARMDESCRIPTIONTABLE) AS BB ON AA.ID=BB.ID 这两个表都有一个id列,
SELECT COUNT(DISTINCT ALARMTABLE.ID) FROM
(SELECT ALARMTABLE.ID FROM ALARMTABLE) AS AA
JOIN
(SELECT ALARMDESCRIPTIONTABLE.DESCRIPTION FROM ALARMDESCRIPTIONTABLE) AS BB
ON AA.ID=BB.ID
这两个表都有一个id列,该列将一个表中的id与另一个表中的描述相关联。我的想法是,我可以得到每个警报的计数和描述。e、 g
AlarmDescription Alarm COUNT
-----------------------------------
Fire Alm 1000
Flood Alm 12
Tornado Alm 75
当我使用Microsoft query运行此操作时,得到的唯一错误是无法添加表“(”。我做错了什么?首先,如果为表添加别名,则必须使用别名引用该表。因此,请更改:
SELECT COUNT(DISTINCT ALARMTABLE.ID) FROM
到
其次,您可能会在MS Query尝试可视化SQL时遇到错误。您可以通过添加一个普通查询并对其进行编辑来解决此问题。单击“属性”,然后单击“连接属性”,然后单击“定义”选项卡。然后您可以在“命令文本”字段中编辑查询
或者可能不那么痛苦:您可以将查询存储在视图中,并在MS query中使用该视图。您的SQL包含一些语法错误 我想知道您所追求的SQL是否更像这样:
SELECT BB.DESCRIPTION, COUNT(*)
FROM ALARMTABLE AS AA
INNER JOIN ALARMDESCRIPTIONTABLE AS BB
ON AA.ID = BB.ID
GROUP
BY BB.DESCRIPTION;
派生表
BB
没有ID
列,因此无法连接到AA.ID=BB.ID
上的表AA
。
SELECT BB.DESCRIPTION, COUNT(*)
FROM ALARMTABLE AS AA
INNER JOIN ALARMDESCRIPTIONTABLE AS BB
ON AA.ID = BB.ID
GROUP
BY BB.DESCRIPTION;