日期:2014-05-19  浏览次数:20600 次

insert into查询问题--在线等!--多谢!
需要插入的表:
INSERT   INTO   sysdba.account
      ( 'ordertotal05 ')
Values()

数据来源:
select   sum(sa.ordertotal)   as   o   from   account   a
inner   join   salesorder   sa   on   a.accountid=sa.accountid
where   orderdate> = '2005-1-1 '   and   orderdate <= '2005-12-31 '
group   by   a.accountID
having   sum(sa.ordertotal) <=15024

需要插入数据的表和数据来源表都是account表,关键字是accountID
请问如何写sql???

多谢帮忙!!

------解决方案--------------------
楼主这么做是什么意思?
能不能举些例子.感觉好像不对.
INSERT INTO sysdba.account(accountID,ordertotal05)
select a.accountID,sum(sa.ordertotal) as o from account a
inner join salesorder sa on a.accountid=sa.accountid
where orderdate> = '2005-1-1 ' and orderdate <= '2005-12-31 '
group by a.accountID
having sum(sa.ordertotal) <=15024

------解决方案--------------------
感觉应该是update,不是insert.
------解决方案--------------------
那你应该不是insert,而且update吧.

update account
set ordertotal05 = t.o
from account,(select a.accountID,sum(sa.ordertotal) as o from account a
inner join salesorder sa on a.accountid=sa.accountid
where orderdate> = '2005-1-1 ' and orderdate <= '2005-12-31 '
group by a.accountID
having sum(sa.ordertotal) <=15024)t
where account.accountID=t.accountID
------解决方案--------------------
1.插入表(此种情况为:当sysdba.account与acount非同一表时)

INSERT INTO sysdba.account(accountID,ordertotal05)
select a.accountID,sum(sa.ordertotal) as o from account a
inner join salesorder sa on a.accountid=sa.accountid
where orderdate> = '2005-1-1 ' and orderdate <= '2005-12-31 '
group by a.accountID
having sum(sa.ordertotal) <=15024

2.更新表(此种情况为:当sysdba.account与acount同一表时)
update account
set ordertotal05 = t.o
from account,(select a.accountID,sum(sa.ordertotal) as o from account a
inner join salesorder sa on a.accountid=sa.accountid
where orderdate> = '2005-1-1 ' and orderdate <= '2005-12-31 '
group by a.accountID
having sum(sa.ordertotal) <=15024)t
where account.accountID=t.accountID