Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用Excel的子查询';微软的查询_Sql Server_Excel - Fatal编程技术网

Sql server 使用Excel的子查询';微软的查询

Sql 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列,

我正在尝试编写一个简单的子查询,在连接两个表之后,计算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列,该列将一个表中的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;