我正在使用第9.3页,我想知道如何在一个语句中执行此操作,甚至可能没有临时表。这对我来说似乎有些混乱。
create temp table docUse (
docid int primary key,
name text, cnt int,
mindate timestamp,
maxdate timestamp);
insert into docuse (docid,cnt)
select documenttypeID, count(documenttypeID) from AllDocs group by documenttype;
update docuse set name = DocName from documenttype where documenttypeid = docid;
update docuse
set mindate = _minDate, maxdate = _MaxDate from(
Select min(Creation_Date) _mindate, max(Creation_Date) _MaxDate, docid did
from AllDocs inner join docuse on documenttypeid = docid group by docid
) foo where did = docid;
示例返回行看起来像
761,Invoice,598236,1/1/2000 12:00:00 am, 2/19/2016 3:15:54 pm
答案 0 :(得分:1)
尝试:
insert into docuse (docid,cnt, mindate, maxdate, name )
SELECT x.documenttypeID, x.cnt, x.mi, x.mx,
( SELECT DocName d from documenttype where d.documenttypeid = x.documenttypeID)
FROM (
select documenttypeID,
count(documenttypeID) as cnt,
min(Creation_Date) as mi,
max(Creation_Date) as mx
from AllDocs a
group by documenttype
) x;