繁体   English   中英

ms Access sql:使用crostab子查询连接查询

[英]ms access sql: concatenate query with a crostab subquery

以当前形式查询:

SELECT
  sr,
  Iif([1]="Null", "", "; 1: "&[1])
& Iif([2]="Null", "", "; 2: "&[2])
& Iif([3]="Null", "", "; 3: "&[3]) AS all_parameters
from (
TRANSFORM first([value])
SELECT [id]
FROM [table]
GROUP BY [id]
PIVOT [value]);

1)我有一张桌子,桌子上有多对一的关系。

[id] | [values] 
   1 |  v1
   1 |  v2 
   2 |  v1
   2 |  v3

我想要看起来像:

1 | v1, v2
2 | v1, v3

2)我从交叉表查询开始:

TRANSFORM first([value])
SELECT [id]
FROM [table]
GROUP BY [id]
PIVOT [value];

它返回如下显示:

[id] | [v1] | [v2] | [v3]
 1   |   1  |   2  |
 2   |   1  |      |   3

由于值来自下拉选择菜单,因此它仅返回数字。

3)我想在丢弃Null的同时将v1,v2和v3值连接在一起,所以我使用以下方法: MS Access-将非空列值组合到(列名称:列值)文本字符串/字段中

要创建这个:

SELECT
  sr,
  Iif([1] is null, "", "; 1: "&[1])
& Iif([2] is null, "", "; 2: "&[2])
& Iif([3] is null, "", "; 3: "&[3]) AS all_parameters
from (
TRANSFORM first([value])
SELECT [id]
FROM [table]
GROUP BY [id]
PIVOT [value]);

4)当我运行它时,我得到一个语法错误,突出显示了TRANSFORM。

如何解决此问题,如何获得要显示的下拉引用?

编辑___________________

所以现在我有:

  SELECT
    [ID],
    Iif([1] is null, "", "; 1: "&[1])
  & Iif([2] is null, "", "; 2: "&[2])
  & Iif([3] is null, "", "; 3: "&[3]) AS all_parameters
  from [query]

它返回:

[id] | [all_parameters] 
 1   |   ;1: ; 2:  |  
 2   |   ;1: ; 3:  |  

你可能做不到。 尝试将交叉表查询另存为命名查询,并将其用作父查询的源。

看到:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM