1樓:匿名使用者
這種需求一般用儲存過程寫,還好你這裡是季度,如果列數較多,那麼使用單條sql難度非常大。
select year,
sum(case when month in( 1,2,3) then total else 0 end) m1,
sum(case when month in( 4,5,6) then total else 0 end) m2,
sum(case when month in( 7,8,9) then total else 0 end) m3,
sum(case when month in( 10,11,12) then total else 0 end) m4
from tab
group by year
2樓:匿名使用者
declare @sql varchar(10)set @sql = 'select year'
select @sql = @sql + ',sum(case month when '''+month+''' then result end) ['+month+']'
from (select distinct month from tablename) as a
select @sql = @sql+' from tablename group by year'
exec(@sql)
3樓:匿名使用者
鑑於這0分也沒給出相應的欄位,給你個提示好了,用轉置函式pivot行列轉換
4樓:利韶段幹帥
select
id,valuea=min(case
when
value='a'
then
value
else
null),
valueb=min(case
when
value='b'
then
value
else
null),
valuec=min(case
when
value='c'
then
value
else
null)
from
table1
group
byid
一道sql面試題,實在不知道怎麼寫了
5樓:殤忄路
select '上午' " ",
max(case when 星期 = '週一' then wm_concat(上午) else null end) 週一,
max(case when 星期 = '週二' then wm_concat(上午) else null end) 週二,
max(case when 星期 = '週三' then wm_concat(上午) else null end) 週三,
max(case when 星期 = '週四' then wm_concat(上午) else null end) 週四,
max(case when 星期 = '週五' then wm_concat(上午) else null end) 週五
from tab
union all
select '下午' " ",
max(case when 星期 = '週一' then wm_concat(下午) else null end) 週一,
max(case when 星期 = '週二' then wm_concat(下午) else null end) 週二,
max(case when 星期 = '週三' then wm_concat(下午) else null end) 週三,
max(case when 星期 = '週四' then wm_concat(下午) else null end) 週四,
max(case when 星期 = '週五' then wm_concat(下午) else null end) 週五
from tab
一道sql面試題,能給出詳細的實現語句最好 15
6樓:紫銀桐楓
select distinct
每個任務所有者當日的總結果數/當日總結果數,
每個任務所有者當日的總任務數/當日總任務數,
task_owner
from (
select sum(result_num) over(partition by 時間欄位擷取到日期,result_server) 當日總結果數,
sum(result_num) over(partition by 時間欄位擷取到日期,result_server,task_owner) 每個任務所有者當日的總結果數,
count(1) over(partition by 時間欄位擷取到日期,result_server) 當日總任務數,
count(1) over(partition by 時間欄位擷取到日期,result_server,task_owner) 每個任務所有者當日的總任務數,
時間欄位擷取到日期,
task_owner,
result_num
from table_a);
不知道行不行,我這也測不了;
我用的是plsql,想來差不多,不過plsql我就直接寫個過程算了,沒必要集中到一段sql裡,費腦子
7樓:依舊在北漂
好繞,看到最後看不下去了,不知道要幹啥。。。。。
一道sql面試題
8樓:
select b.* ,m1.正常,m2.病假,m3.事假 from userinfo b
left join (select a.u_id, count(a.checktype) 正常 from checkinfo a where a.
checktype='正常' group by a.u_id ) m1 on b.u_id=m1.
u_id
left join (select a.u_id, count(a.checktype) 病假 from checkinfo a where a.
checktype='病假' group by a.u_id ) m2 on b.u_id=m2.
u_id
left join (select a.u_id, count(a.checktype) 事假 from checkinfo a where a.
checktype='事假' group by a.u_id ) m3 on b.u_id=m3.
u_id
不是最簡寫法
-----------------------
select b.* ,m.病假,m.正常,m.事假 from userinfo b
join
(select a.u_id,
count(case when a.checktype='病假' then '1' end ) 病假 ,
count(case when a.checktype='正常' then '1' end ) 正常 ,
count(case when a.checktype='事假' then '1' end ) 事假
from checkinfo a group by a.u_id) m on m.u_id=b.u_id
這樣寫簡單,但效率我覺得是一樣的
9樓:雞鳴燈滅不上網
你那兩個表的欄位不是很理解
select userinfo.username, case(when checkinfo.checktype = 病假 then 出勤記錄 end) as 病假天數,case(when checkinfo.
checktype = 事假 then 出勤記錄 end) as 事假天數 from userinfo, checkinfo where userinfo.u_id = checkinifo.u_id
10樓:其建修品
我覺得應該先將raindate轉換成列,就是列出所有下雨的日期,再選擇出未下雨的日期。
語句如下:
select
*from
raindate
declare
@min
intdeclare
@max
intdeclare
@date
datetime
declare
@name
varchar(100)
declare
@sql
varchar(1000)
set@min
=(select
min(id)
from
raindate)
set@max
=(select
max(id)
from
raindate)
create
table
#t(old_id
varchar(100)
,date
datetime)
while
@min
<=@max
begin
set@date
=(select
startdate
from
raindate
whereid=
@min)
while
@date
<=(select
enddate
from
raindate
whereid=
@min)
begin
insert
into
#t(old_id,date)
select
id,@date
from
raindate
whereid=
@min
set@date
=dateadd(day,1,@date)endset
@min
=@min+1
endselect
*from
#tdrop
table#t
一道華為關於sql的面試題
11樓:
主要區別在於對資料型別值的處理上,select * from table會檢索包括 null的所有值,
而後面語句 中 like '%%'所匹配的一般只有任意字串,不會對null,數字型別等進行匹配
12樓:匿名使用者
like對null不處理
13樓:
應該是考慮欄位為null與空字串''的問題吧
14樓:匿名使用者
條件不同收索出的結果當然不同了 如果table中的欄位數超過第2句語言欄位數就回有差別
一道sql面試題,到底能難倒了多少人
15樓:
第四條我沒有。沒有家,沒有媽,多少人和我一樣。
16樓:匿名使用者
什麼題?能把問題描述清楚嗎?
17樓:匿名使用者
這個具體要看個人能力。就如同參加高考,能考進清華大學的一共就那麼多。
一道軟體測試面試題中的sql題目,求解
求sql常考面試題 100
18樓:匿名使用者
留個郵箱!發給你兩個面試題集合給你!
19樓:教導部主任
分頁儲存過程,偽列,考的比較多
年薪100萬的一道面試題,這是一道年薪10萬的面試題,當時只有一個人答對了。
是9月1號!小明說 如果我不知道的話,小強肯定也不知道這句話說明在小明知道的月分一組裡面的日子,一定都是跟別的月分的日子有重複,否則小強不一定不知道!這樣可以淘汰6月和12月 小強說 本來我也不知道,但是現在我知道了 說明日子肯定不是5要不他還是不知道 小明說 哦,那我也知道了 說明只能是9月1號,...
民法的一道題。求教,一道民法題,求教
您的問題,我看不太懂 1 張某為什麼要否認,房屋的所有權並不是張某的。2 張某否不否認,不影響房屋歸屬李某的事實,因為那是法院判給李某的。3 不存在催告問題。4 如果最後房屋歸了吳某,張某可以向李某追究合同責任。5 吳某屬於善意取得,並非不當得利。本題是2011年國家司法考試卷三第55題的真題,現將...
求教!一道C語言題目,求教一道C語言的題目!
你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...