根本沒涉及橫縱。

創(chuàng)新互聯(lián)建站主要從事做網(wǎng)站、成都網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)張店,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
select a.*,b.軍人人數(shù),c.武警人數(shù) from
(select 所在位置,count(*) as 警察人數(shù) from 表 where 職務(wù)='警察' group by 位置) as a left jion
(select 所在位置,count(*) as 軍人人數(shù) from 表 where 職務(wù)='軍人' group by 位置) as b
on a.所在位置=b.所在位置 left jion
(select 所在位置,count(*) as 武警人數(shù) from 表 where 職務(wù)='武警' group by 位置) as c on a.所在位置=c.所在位置
你這個(gè)需要后臺(tái)處理一下才可以,直接轉(zhuǎn)換比較麻煩,效率也不高。因?yàn)槟阈枰?jì)算出每天的開始時(shí)間和結(jié)束時(shí)間insert into newtable select employeeID,days,MAX(cardTime) as endtime,Min(cardTime) as starttime from
table group by employeeID,days; 大概就這意思,自己在調(diào)試調(diào)試吧
將要改的行"復(fù)制",點(diǎn)擊鼠標(biāo)右鍵,"選擇性粘貼",在對(duì)話框中選擇最下面的"轉(zhuǎn)置",就可以實(shí)現(xiàn)你想要的結(jié)果
--行列互轉(zhuǎn)
/******************************************************************************************************************************************************
以學(xué)生成績?yōu)槔樱容^形象易懂
整理人:中國風(fēng)(Roy)
日期:2008.06.06
******************************************************************************************************************************************************/
--1、行互列
-- -- (Roy)生成測試數(shù)據(jù)
if not object_id('Class') is null
drop table Class
Go
Create table Class([student] nvarchar(2),[subject] nvarchar(2),[grade] int)
Insert Class
select N'張三',N'語文',78 union all
select N'張三',N'數(shù)學(xué)',87 union all
select N'張三',N'英語',82 union all
select N'張三',N'物理',90 union all
select N'李四',N'語文',65 union all
select N'李四',N'數(shù)學(xué)',77 union all
select N'李四',N'英語',65 union all
select N'李四',N'物理',85
Go
--2000方法:
動(dòng)態(tài):
declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename([subject])+'=max(case when [subject]='+quotename([subject],'''')+' then [grade] else 0 end)'
from Class group by[subject]
exec('select [student]'+@s+' from Class group by [student]')
生成靜態(tài):
select
[student],
[數(shù)學(xué)]=max(case when [subject]='數(shù)學(xué)' then [grade] else 0 end),
[物理]=max(case when [subject]='物理' then [grade] else 0 end),
[英語]=max(case when [subject]='英語' then [grade] else 0 end),
[語文]=max(case when [subject]='語文' then [grade] else 0 end)
from
Class
group by [student]
GO
動(dòng)態(tài):
declare @s nvarchar(4000)
Select @s=isnull(@s+',','')+quotename([subject]) from Class group by[subject]
exec('select * from Class pivot (max([grade]) for [subject] in('+@s+'))b')
生成靜態(tài):
select *
from
Class
pivot
(max([grade]) for [subject] in([數(shù)學(xué)],[物理],[英語],[語文]))b
生成格式:
/*
student 數(shù)學(xué) 物理 英語 語文
------- ----------- ----------- ----------- -----------
李四 77 85 65 65
張三 87 90 82 78
(2 行受影響)
*/
------------------------------------------------------------------------------------------
go
--加上總成績(學(xué)科平均分)
--2000方法:
動(dòng)態(tài):
declare @s nvarchar(4000)
set @s=''
Select @s=@s+','+quotename([subject])+'=max(case when [subject]='+quotename([subject],'''')+' then [grade] else 0 end)'
from Class group by[subject]
exec('select [student]'+@s+',[總成績]=sum([grade]) from Class group by [student]')--加多一列(學(xué)科平均分用avg([grade]))
生成動(dòng)態(tài):
select
[student],
[數(shù)學(xué)]=max(case when [subject]='數(shù)學(xué)' then [grade] else 0 end),
[物理]=max(case when [subject]='物理' then [grade] else 0 end),
[英語]=max(case when [subject]='英語' then [grade] else 0 end),
[語文]=max(case when [subject]='語文' then [grade] else 0 end),
[總成績]=sum([grade]) --加多一列(學(xué)科平均分用avg([grade]))
from
Class
group by [student]
go
--2005方法:
動(dòng)態(tài):
declare @s nvarchar(4000)
Select @s=isnull(@s+',','')+quotename([subject]) from Class group by[subject] --isnull(@s+',','') 去掉字符串@s中第一個(gè)逗號(hào)
exec('select [student],'+@s+',[總成績] from (select *,[總成績]=sum([grade])over(partition by [student]) from Class) a
pivot (max([grade]) for [subject] in('+@s+'))b ')
生成靜態(tài):
select
[student],[數(shù)學(xué)],[物理],[英語],[語文],[總成績]
from
(select *,[總成績]=sum([grade])over(partition by [student]) from Class) a --平均分時(shí)用avg([grade])
pivot
(max([grade]) for [subject] in([數(shù)學(xué)],[物理],[英語],[語文]))b
生成格式:
/*
student 數(shù)學(xué) 物理 英語 語文 總成績
------- ----------- ----------- ----------- ----------- -----------
李四 77 85 65 65 292
張三 87 90 82 78 337
(2 行受影響)
*/
go
--2、列轉(zhuǎn)行
-- -- (Roy)生成測試數(shù)據(jù)
if not object_id('Class') is null
drop table Class
Go
Create table Class([student] nvarchar(2),[數(shù)學(xué)] int,[物理] int,[英語] int,[語文] int)
Insert Class
select N'李四',77,85,65,65 union all
select N'張三',87,90,82,78
Go
--2000:
動(dòng)態(tài):
declare @s nvarchar(4000)
select @s=isnull(@s+' union all ','')+'select [student],[subject]='+quotename(Name,'''')--isnull(@s+' union all ','') 去掉字符串@s中第一個(gè)union all
+',[grade]='+quotename(Name)+' from Class'
from syscolumns where ID=object_id('Class') and Name not in('student')--排除不轉(zhuǎn)換的列
order by Colid
exec('select * from ('+@s+')t order by [student],[subject]')--增加一個(gè)排序
生成靜態(tài):
select *
from (select [student],[subject]='數(shù)學(xué)',[grade]=[數(shù)學(xué)] from Class union all
select [student],[subject]='物理',[grade]=[物理] from Class union all
select [student],[subject]='英語',[grade]=[英語] from Class union all
select [student],[subject]='語文',[grade]=[語文] from Class)t
order by [student],[subject]
go
--2005:
動(dòng)態(tài):
declare @s nvarchar(4000)
select @s=isnull(@s+',','')+quotename(Name)
from syscolumns where ID=object_id('Class') and Name not in('student')
order by Colid
exec('select student,[subject],[grade] from Class unpivot ([grade] for [subject] in('+@s+'))b')
go
select
student,[subject],[grade]
from
Class
unpivot
([grade] for [subject] in([數(shù)學(xué)],[物理],[英語],[語文]))b
生成格式:
/*
student subject grade
------- ------- -----------
李四 數(shù)學(xué) 77
李四 物理 85
李四 英語 65
李四 語文 65
張三 數(shù)學(xué) 87
張三 物理 90
張三 英語 82
張三 語文 78
(8 行受影響)
*/
select sum((case when name='序號(hào)' then type end)) 序號(hào),
sum((case when name='截止日期' then type end)) 截止日期,
sum((case when name='品種' then type end)) 品種,
sum((case when name='種植進(jìn)度' then type end)) 種植進(jìn)度,
sum((case when name='當(dāng)期' then type end)) 當(dāng)期,
sum((case when name='5年平均' then type end)) 5年平均
from 表 gup by 1;
分兩次進(jìn)行不同的查詢就可以實(shí)現(xiàn)了
先查出組員信息,比如組員數(shù)量、文章總數(shù)、評(píng)論總數(shù)等
再查出組長信息
兩個(gè)查詢一合并就可以了
SQL角本如下:
select?a.用戶名?組長,?b.組員數(shù)量,?b.文章總數(shù),?b.評(píng)論總數(shù)
from?(select?編號(hào),?用戶名?from?table_name?where?角色?=?'組長')?a,?--?找組長信息
(select?組長,?
count(1)?組員數(shù)量,
sum(文章)?文章總數(shù),
sum(評(píng)論)?評(píng)論總數(shù)
from?table_name
where?組長?is?not?null
group?by?組長)?b???--?找組員信息
where?a.編號(hào)?=?b.組長
當(dāng)前標(biāo)題:mysql橫表怎么轉(zhuǎn)縱表,表格怎么橫向轉(zhuǎn)縱向
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article11/dsehdgd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、域名注冊(cè)、靜態(tài)網(wǎng)站、用戶體驗(yàn)、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)