我正在尝试将一个包含3列的with t(Id,Letter,Column1,Column2) as
(
select 1,'A',100,200 union all
select 1,'A',101,201 union all
select 1,'A',102,203 union all
select 2,'A',100,200 union all
select 2,'A',101,201 union all
select 2,'A',102,202
), t2 as
(
select
*,
row_number() over (partition by Id,Letter order by Column1) as rn
from [t]
)
select Id,Letter,
max(case when rn = 1 then Column1 end ) as [Alias1],
max(case when rn = 2 then Column1 end ) as [Alias2],
max(case when rn = 3 then Column1 end ) as [Alias1-1],
max(case when rn = 1 then Column2 end ) as [Alias2-0],
max(case when rn = 2 then Column2 end ) as [Alias2-1],
max(case when rn = 3 then Column2 end ) as [Alias2-2]
from t2
group by Id,Letter
表插入:Bill
,BillID
和FoodID
。没有主键,因为可以重复Count
和BillID
。
我运行以下查询:
FoodID
它在Microsoft Access(查询视图)中工作正常,但在我的Visual Basic项目中却不能。
我尝试了其他表,它可以插入,但是不能插入该表。我认为违反密钥有问题,但是异常yield
插入到语句中的语法错误
而且我不知道如何检查。请帮助我。
insert into BillInfo (BillID, FoodID, Count)
values (3, 'SP05', 1)
我的Dim query = "insert into BillInfo(BillID, FoodID, Count) values(3, 'SP05', 1)"
Dim result = DataProvider.Instance.executeNonQuery(query)
类基本上可以执行带有任何参数的任何查询。
我只是尝试使用硬代码作为示例
答案 0 :(得分:3)
Count 是我能想到的任何数据库引擎中的保留字。
您应该尝试在数据库架构中避免此类词语。
无论如何,如果您想使用该单词,请将其放在方括号中
"Insert into BillInfo(BillID, FoodID, [Count]) values(3, 'SP05', 1)"