Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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 对于其他表中的每个唯一ID,重复左表中的所有行_Sql_Ms Access - Fatal编程技术网

Sql 对于其他表中的每个唯一ID,重复左表中的所有行

Sql 对于其他表中的每个唯一ID,重复左表中的所有行,sql,ms-access,Sql,Ms Access,我有一个团队,他们在三个指标上得分;销售、销售线索和时间 我在MS Access中有一个表(tblScores),它保存这些分数,但只有在有分数的情况下。(例如,如果某人没有销售记录,则他们将没有销售记录) 我正在尝试创建一个SQL查询,该查询将为上表中的每个用户输出三条记录(每个可能的指标),其中包括空值,而这些值没有该指标的条目。e、 g | USERID | Metric | Score | ---------------------------------- | 205

我有一个团队,他们在三个指标上得分;销售、销售线索和时间

我在MS Access中有一个表(tblScores),它保存这些分数,但只有在有分数的情况下。(例如,如果某人没有销售记录,则他们将没有销售记录)

我正在尝试创建一个SQL查询,该查询将为上表中的每个用户输出三条记录(每个可能的指标),其中包括空值,而这些值没有该指标的条目。e、 g

| USERID  |    Metric   |  Score  | 
----------------------------------
| 20511   |     Sales   |  12     | 
| 20511   |     Leads   |  9      | 
| 20511   |     Hours   |  8      | 
| 20694   |     Sales   |  10     | 
| 20694   |     Leads   |  Null   |
| 20694   |     Hours   |  7.5    |
我已经建立了另一个表(tblMetrics),其中只包含这3个指标

|    Metric   |
---------------
|     Sales   | 
|     Leads   |  
|     Hours   |  
并尝试在度量表和分数表之间进行左连接

SELECT tblMetrics.*, TblScores.UserID, TblScores.Score
FROM tblMetrics LEFT JOIN TblScores ON tblMetrics.Metric = TblScores.Metric;

但它仍然没有给出期望的输出。有人知道这是否可能吗?

您需要先执行
交叉联接
以生成所有组合,然后执行
左联接
以查找缺少的组合并分配
空值

我检查访问语法,交叉连接应该这样写

SELECT DISTINCT M.Metric, S.USERID  
FROM tblMetric M, tblScore S
左连接
应该是

SELECT userMetrc.*, S.Score  
FROM ( SELECT DISTINCT M.Metric, S.USERID  
       FROM tblMetric M, tblScore S
     ) userMetric
LEFT JOIN  tblScore S
  ON (     userMetric.USERID = S.USERID  
       AND userMetric.Metric = S.Metric )

您需要先执行
交叉联接
以生成所有组合,然后执行
左联接
以查找缺少的组合并分配
空值

我检查访问语法,交叉连接应该这样写

SELECT DISTINCT M.Metric, S.USERID  
FROM tblMetric M, tblScore S
左连接
应该是

SELECT userMetrc.*, S.Score  
FROM ( SELECT DISTINCT M.Metric, S.USERID  
       FROM tblMetric M, tblScore S
     ) userMetric
LEFT JOIN  tblScore S
  ON (     userMetric.USERID = S.USERID  
       AND userMetric.Metric = S.Metric )

你能给我们看看你的tblMetrics和TBLScore吗?不知道哪一个在这里。谢谢你的回复。我已经更新了我的问题,希望能让它更清楚一点。你能给我们看看你的tblMetrics和TblScores,不知道哪一个在这里。嗨。谢谢你的回复。我已经更新了我的问题,希望能把它弄清楚一点。我已经尝试了这两种解决方案,并且在from子句中遇到语法错误?可能是Access中不支持交叉连接吗?我检查Access中交叉连接的语法,尝试使用distinct。对于
条件,您可能需要
()
。最后一个查询工作正常。谢谢:-)第一个问题很抱歉,我的访问权限有点生锈;)你好我已经尝试了这两种解决方案,并且在from子句中遇到语法错误?可能是Access中不支持交叉连接吗?我检查Access中交叉连接的语法,尝试使用distinct。对于
条件,您可能需要
()
。最后一个查询工作正常。谢谢:-)第一个问题很抱歉,我的访问权限有点生锈;)