如何在MS Access查询中重复模式

时间:2015-05-03 22:16:08

标签: sql ms-access

我有一个MS Access数据库,其中有两个名为[Pattern]和[Element]的表。

以下示例显示了表及其各自的数据类型。

表1:[模式]

patternID - key
pStart - short date
pEnd - short date

表2:[元素]

elementID - key
patternID
text -text(2)

我想创建一个查询,它将重复元素表的文本字段中包含的模式。例如

对于patternID = 1,有4个elementID条目,文本值为1,2,3,4

如果模式表中两个日期pStart和pEnd之间的差异,我如何获得重复1,2,3,4,1,2,3,4的查询?

希望这是有道理的,谢谢你提前。我通常在Excel工作,所以Access对我来说是新的。

2 个答案:

答案 0 :(得分:1)

您需要一个数字或因子表,其中一个字段的整数从0到至少是您将拥有的最大日数。

然后您可以创建第一个笛卡尔查询:

Select 
    patternID
From 
    Pattern,
    Factors
Where
    DateAdd("d", [Factor], [pStart]) <= pEnd

将其保存为,例如,模式并创建第二个笛卡尔查询:

Select
    Element.patternID,
    Element.elementID,
    Element.Text
From
    Patterns,
    Element
Where
    Patterns.patternID = Element.patternID
Order By
    Element.patternID,
    Element.elementID,
    Element.Text

答案 1 :(得分:0)

我不确定您是在查询设计器还是sql视图中执行此操作。如果您编写sql,这可能会有所帮助:

select distinct E.text
from Element E, Pattern P
where E.patternID = P.patternID
AND p.Start <> p.End