1樓:
select 建立人,sum(case when 工作型別='t106' then 耗時 else 0 end) as t106,
sum(case when 工作型別='t102' then 耗時 else 0 end) as t102,
sum(case when 工作型別='t106' then 耗時 else 0 end)
+sum(case when 工作型別='t102' then 耗時 else 0 end) as 總耗時
from test where 工作型別 in ('t106','t102') or 建立人 in ('a','b')
group by 建立人;
2樓:匿名使用者
create table tablef(建立人 char(20),t101 float,t102 float,t105 float,t106 float
)create proc t
asdeclare @sql varchar(800)
set @sql='select 建立人'
select @sql =@sql+', max(case 工作型別 when '''+工作型別+''' then 耗時 else 0 end )['+工作型別+']'
from (select distinct 工作型別 from tabled ) as a
set @sql= @sql+'from tabled group by 建立人'
insert into tablef
exec(@sql)
select 建立人, t106,t102 ,sum(t106+t102) from tablef where 建立人 in ('a','b') group by 建立人, t106,t102
3樓:匿名使用者
select 建立人 , sum(耗時) 總耗時 ,,case 工作型別 when t106 then 耗時 else 0 end t106
,case 工作型別 when t102 then 耗時 else 0 end t102
,case 工作型別 when t101 then 耗時 else 0 end t101
group by 建立人
怎麼用sql儲存過程來跨行求和並且插入到資料庫中,急用,跪謝啦 30
4樓:
跨行求和,判斷rownum(oracle)或者類似的引數的奇數偶數即可吧。
sql server 如何對一個欄位的某幾行求和
5樓:標標課堂
sql server資料中運算子與表示式
6樓:折柳成萌
select sum(id4),count(*) from a_temp ;
可以一句sql就直接查詢得到列的和以及記錄數。
該sql中sum(id4)是列id4的總和,count(*)是得到的資料總行數。
7樓:匿名使用者
寫一個儲存過程吧,來的快些。
sql 儲存過程求和,求同比,請高手解答!
8樓:it技術小店
以a表為例子
先建立一個table0
create table_0
(n_date date,
sheng varchar2(20),
sale number
tongbi number);
create unique index table_0_u1 on table_0 (n_date,sheng);
create or replace package body pkg_b_tongji is
procedure sp_update_party_rating(p_sdate number, p_edate number) is
v_sdate date default to_date(p_sdate,'yyyymmdd');
v_edate date default to_date(p_edate,'yyyymmdd');
v_sqlupd varchar2(3000);
v_sqlins varchar2(3000);
begin
v_sqlins := 'insert into table_0(n_date,sheng,sale)
values(:v1,:v2,:v3)';
v_sqlupd := 'update table_0 t set sale = :v1
where n_date = :v2 and sheng = :v3';
for c1 in (select a.ndate,
a.sheng,
sum(sale) sale
from a
where ndate between v_sdate and v_edate
group by a.ndate,
a.sheng
)loop
execute immediate v_sqlupd using c1.sale;
if sql%rowcount<=0 then --如果更新操作沒有執行就執行插入操作
execute immediate v_sqlins using c1.n_date,c1.sheng,c1.sale;
end if;
end loop;
commit;
end sp_update_party_rating;
---更新同比
procedure sp_update_tongbi is
begin
for c2 in (
select n_date,
sheng,
sale,
nvl(sale,0) sale1
from table_0 a
left join
(select n_date,sheng,a.nvl(sale,0) sale
from table_0 a,
(select t.n_date,sheng
add_months(n_date,-1) n_date2
from table_0 t)
where a.sheng = b.sheng and a.n_date = b.n_date2)
)loop
update table_0
set tongbi = sale/sale1
where n_date = c2.n_date and sheng = c2.sheng;
commit;
end loop;
end sp_update_tongbi;
end pkg_b_tongji;
sql儲存過程中根據判斷拼接sql語句然後執行
雨夜 狂想 我給你舉一個構造sql語句的例子,首先把sql語句計算出來,然後再執行這個計算出來的sql語句 declare lssql nvarchar 1024 a varchar 10 b varchar 10 c varchar 32 set a select set b set c from...
sql,用2019這儲存過程應該怎麼寫
create proc procname resumestate1 varchar 20 resumestate2 varchar 20 asif resumestate1 山西 begin select from searchviewwhere 1 1 and state 1endif resum...
sql2005儲存過程中變數的使用
yf在你的儲存過程中是定義了,但是在 sql中沒有定義,當你執行 sql的時候,外面定義的變數在裡面是無效的。給你3點建議。1.能不用動態sql儘量不要用,因為系統沒法給你預先確定執行計劃,所以動態sql是不高效的。2.既然你用了動態sql,那麼複雜的判斷邏輯就不要放在 sql 裡面了。而是放在外面...