簡體   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