Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access microsoftjet数据库引擎中的数据转换_Ms Access - Fatal编程技术网

Ms access microsoftjet数据库引擎中的数据转换

Ms access microsoftjet数据库引擎中的数据转换,ms-access,Ms Access,如果我有一个要转换的数据集,那么应该使用什么查询 From | To | Val1 | Val2 | Val3 123 130 AB DE EF 131 140 WS ED RF 141 145 GT HY JU 我想在Microsoft Jet数据库引擎或MS Access中打印以下数据集 ID | Val1 | Val2 | Val3 123 AB DE EF 124 AB DE EF 125 AB DE EF 126 AB DE EF 127 AB DE

如果我有一个要转换的数据集,那么应该使用什么查询

From | To | Val1 | Val2 | Val3
123 130 AB  DE  EF
131 140 WS  ED  RF
141 145 GT  HY  JU
我想在Microsoft Jet数据库引擎或MS Access中打印以下数据集

ID | Val1 | Val2 | Val3
123 AB  DE  EF
124 AB  DE  EF
125 AB  DE  EF
126 AB  DE  EF
127 AB  DE  EF
128 AB  DE  EF
129 AB  DE  EF
130 AB  DE  EF
131 WS  ED  RF
132 WS  ED  RF
133 WS  ED  RF
134 WS  ED  RF
135 WS  ED  RF
136 WS  ED  RF
137 WS  ED  RF
138 WS  ED  RF
139 WS  ED  RF
140 WS  ED  RF
141 GT  HY  JU
142 GT  HY  JU
143 GT  HY  JU
144 GT  HY  JU
145 GT  HY  JU

这在SQL-Server上有效,但不确定在使用access时如何使用此技术

create table #t (F_Val int, 
    To_Val int, 
    Val1 varchar(5), 
    Val2 varchar(5), 
    Val3 varchar(5)
)

insert into #t values
(123, 130, 'AB', 'DE', 'EF'),
(131, 140, 'WS', 'ED', 'RF'),
(141, 145, 'GT', 'HY', 'JU')

;with ct as (
    select ROW_NUMBER() over (ORDER BY object_id) as RN
    from sys.objects
)
select RN, #t.Val1, #t.Val2, #t.Val3
from ct
    inner join #t on ct.RN between #t.F_Val and #t.To_Val

juts注意到数据库中sys.objects的数量是有限的,所以这在更大的范围内不起作用,但想法是这样的

使用以下SQL创建并保存查询qdxFactor:

SELECT DISTINCT 
    [Tens]+[Ones] AS Factor, 
    10*Abs([Deca].[id] Mod 10) AS Tens, 
    Abs([Uno].[id] Mod 10) AS Ones
FROM 
    MSysObjects AS Uno, 
    MSysObjects AS Deca;
然后创建笛卡尔查询:

Select
    [From] + Factor As ID,
    Val1,
    Val2,
    Val3
From
    YourTable,
    qdxFactor
Where
    [From] + Factor <= [To]
选择
[From]+因子作为ID,
瓦尔1,
Val2,
Val3
从…起
你的桌子,
qdxFactor
哪里

[From]+Factor据我所知,您的帖子-您的数据集在日期范围内有2个日期;从和到。您试图为日期范围内的所有日期创建记录

表联接方法是最简单的,但必须有一个新表来保存ID字段的所有可能值。因此,在您发布的示例中,您需要一个具有单个列ID的表,该列包含从123到145的22条记录。但我想在现实生活中,你的数据集可能要大得多——这没关系,只是有时候更难创建。让我们称之为ID表

在select查询中,使用join子句SQL语法将ID表连接到表1:
[Table 1].[From]>=[ID Table].[ID]和[Table 1].[To]您使用的是MS Access还是SQL Server数据库引擎?它们之间的巨大差异。我现在使用MS Access。