ConcatRelated() - 查询或表

时间:2018-01-07 18:44:49

标签: sql ms-access merge concatenation

我对此问题有类似的问题Combine values from related rows into a single concatenated string value

我有两个问题:

Join Query Schema

这就是现在没有ConcatRelated()的情况:

Query Output

我需要回复:

Desired Result

我尝试使用这个SQL:

SELECT DISTINCT
Q_Fakt1.FakturaID,
Q_Fakt1.DatumVystavenia,
Q_Fakt1.DatumSplatnosti,
Q_Fakt2.Pismeno,

ConcatRelated(
"pismeno",
"Q_Fakt2",
"FakturaID = '" &  [Q_Fakt1]![FakturaID] & "'"
) AS Letters

FROM Q_Fakt1 INNER JOIN Q_Fakt2 ON Q_Fakt1.FakturaID = Q_Fakt2.FakturaID;

结果是7×popup:

  

ConcatRelated()Error3464:条件表达式中的数据类型不匹配。

我对表做了同样的事情,但我的关系有点复杂,所以......

https://i.stack.imgur.com/TM7Cu.png

SQL:

SELECT DISTINCT
Faktury.FakturaID,
Kategorie.Oznacenie,
Faktury.DatumVystavenia,
FakturujemVam.FakturujemVamID,
FakturyDetaily.FakturujemVam,
[DatumVystavenia]+[splatnostFaktury] AS DatumSplatnosti,

ConcatRelated("Oznacenie","kategorie","FakturaID = '" & [FakturaID] & "'") AS Letters

FROM Kategorie INNER JOIN (Faktury INNER JOIN (FakturujemVam INNER JOIN FakturyDetaily ON FakturujemVam.FakturujemVamID = FakturyDetaily.FakturujemVam) ON Faktury.FakturaID = FakturyDetaily.Faktura) ON Kategorie.KategoriaID = FakturujemVam.Kategoria;

结果是6×popup:

  

ConcatRelated()Error3061:参数太少。例外1。

我哪里出错了?谢谢你的帮助

2 个答案:

答案 0 :(得分:0)

那是因为当你没有使用字符串时,你正在使用字符串分隔符。

删除这些分隔符,它会正常工作:

ConcatRelated("Oznacenie","kategorie","FakturaID = " & [FakturaID] ) AS Letters

答案 1 :(得分:0)

<强>解决:

第1步

创建查询以合并更多表格

Datasheet View

Design View

第2步

创建另一个查询&amp;使用ConcatRelated()

Design View

SQL:

SELECT
Q_Part_Bill_Num2.NumBill,
Q_Part_Bill_Num2.C_Mark,

ConcatRelated(
     "C_Mark",
     "Q_Part_Bill_Num2",
     "Q_Part_Bill_Num2!NumBill = " & [Q_Part_Bill_Num2]![NumBill]
     ) AS PartBillNum2

FROM Q_Part_Bill_Num1 INNER JOIN Q_Part_Bill_Num2 ON Q_Part_Bill_Num1.NumBill = Q_Part_Bill_Num2.NumBill;

第3步 - 可选

编辑MODULE以删除/更改分隔符“,”

第4步

创建一个最后一个查询以将所有内容连接在一起。 Design View

SQL:

  SELECT DISTINCT

Q_Part_Bill_Num1.PartBillNum1,
Q_Part_Bill_Num3.PartBillNum2,
[PartBillNum1] & [PartBillNum2] AS [Full]

FROM 
(T_Bills INNER JOIN Q_Part_Bill_Num1 ON T_Bills.Bills_ID = Q_Part_Bill_Num1.Bills_ID)
INNER JOIN (Q_Part_Bill_Num2 INNER JOIN Q_Part_Bill_Num3
ON (Q_Part_Bill_Num2.NumBill = Q_Part_Bill_Num3.NumBill)
AND (Q_Part_Bill_Num2.C_Mark = Q_Part_Bill_Num3.C_Mark))
ON Q_Part_Bill_Num1.NumBill = Q_Part_Bill_Num2.NumBill;

使用DISTINCT避免重复。 我希望这会对某人有所帮助。

谢谢大家,您的时间:)

相关问题