SQL归属

时间:2015-11-27 11:23:27

标签: sql sql-server insert

我有一个计算归因的查询,我希望将结果插入到列中。这是我的新查询的基本性质!

有2个表testvisitstestsales。我希望为每次访问找到偶数份额,并将结果放在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')

您需要的任何信息请询问,并感谢您的帮助。

1 个答案:

答案 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
    );

另见syntax for oracle

工作如何插入

例如,您的表 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 列。你抓住了这个例子。