我有一个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对我来说是新的。
答案 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