我有一个计算归因的查询,我希望将结果插入到列中。这是我的新查询的基本性质!
有2个表testvisits
和testsales
。我希望为每次访问找到偶数份额,并将结果放在revenue_modelA
表格中的testvisits
列中。
这是我到目前为止所拥有的......
select
s.saleID,
count(v.visitID) as visits,
s.revenue,
(select s.revenue/count(DISTINCT v.visitID) as visits) as "Even-Share"
from
testvisits v
join
testsales s on v.saleid = s.saleid
where
v.saleid = s.saleid
group by
s.saleID, s.revenue
order by
s.saleID
insert into testvisits (revenue_modelA)
values ('select s.revenue/count(DISTINCT v.visitID)
from testvisits v
join testsales s on v.saleid = s.saleid
where v.saleid = s.saleid')
您需要的任何信息请询问,并感谢您的帮助。
添
答案 0 :(得分:0)
你应该使用 插入选择 构造来查看Oracle数据库查询:
insert into testvisits(revenue_modela)
(
select s.revenue / count(distinct v.visitid)
from testvisits v
join testsales s
on v.saleid = s.saleid
where v.saleid = s.saleid
);
例如,您的表 testvisits 具有以下***结构/列:
- saleID(非null)
- revenue_modela(可以为null)
- description(可以为null)
当您插入时,即使您选择了一列 revenue_modela :
insert into testvisits (revenue_modela) values ('some value');
它仍会尝试将值插入所有列并运行以下查询:
insert into testvisits (saleID, revenue_modela, desctiption) values (null, 'some value', null);
因此,会尝试将 null 值插入 saleID 列。你抓住了这个例子。