❶ sql語句多表查詢
select aa.name 姓名,aa.type 人員類別,nvl(b.value,0) 提成,nvl(b1.value) 基本工資 (select a.name name,(case when a.stafftype=1 then 裝卸工 when a.stafftype=2 then 維修工
else 職員 end ) type,a.id aid,c.projectsname pname from ba_staff_info a ,wage_project c where a.userid=c.userid) aa
left join wage_info b on b.staffid=aa.aid and aa.pname='提成'
left join wage_info b1 on b1.staffid=aa.aid and aa.pname='基本工資'
.......
下面以此類推吧,我的思想是縱表轉橫表,希望對你有幫助,謝謝!
❷ SQL 如何查詢時 豎著的數據 橫著顯示
你這個是將縱表轉換為橫表,例如如下數據:
'wangming', 'shuxue', 100
'wangming', 'yuwen', 90
'wangming', 'yingyu', 140
可以使用如下語句處理:
select a.v_name,a.v_score shuxue,b.v_score yuwen,c.v_score yingyu from temp_1 a,temp_1 b,temp_1 c
where a.v_name=b.v_name
and a.v_name=c.v_name
and a.v_name='wangming'
and a.v_course='shuxue'
and b.v_course='yuwen'
and c.v_course='yingyu';
❸ SQL資料庫中 "縱表" 的數據如何修改
這個你程序運行到修改這里應該把資料庫中的數據相應的讀寫到文本框內
(文本框內的相應驗證要有哦)按確定時按照文本框及標簽的順序進行update
如update table set 利率=0.1 where 類別='零存整取1年'
你標簽顯示的字不會是固定的吧,可以改成資料庫讀取的啊
❹ sql多表查詢的問題
select aa.name 姓名,aa.type 人員類別,nvl(b.value,0) 提成,nvl(b1.value) 基本工資 (select a.name name,(case when a.stafftype=1 then 裝卸工 when a.stafftype=2 then 維修工
else 職員 end ) type,a.id aid,c.projectsname pname from ba_staff_info a ,wage_project c where a.userid=c.userid) aa
left join wage_info b on b.staffid=aa.aid and aa.pname='提成'
left join wage_info b1 on b1.staffid=aa.aid and aa.pname='基本工資'
.......
下面以此類推吧,我的思想是縱表轉橫表,希望對你有幫助,謝謝!
❺ sql豎表數據批量插入到橫表中 注意是要插入到表中,不單單是查詢出來
declare @idx int,@colName varchar(50),@tableID int,@sql varhcar(2000)
select @tableID=id from sysobjects where name='橫表名'
set @idx=1
set @colName='Marks'+convert(varchar,@idx)
while(if exists(select * from sysocolumns where id=@tableID and name=@colName))
begin
set sql='insert into 縱表 select stuno,stuname,『+@colName+』from 橫表'
exec(@sql)
set @idx=@idx+1
set @colName='Marks'+convert(varchar,@idx)
end
沒有調試,直觀的基本上就是這個寫法,復雜點的你可以單獨再建個要需讀取的列名表,循環取列名拼SQL再執行。
或者再寫的復雜點,循環用union拼接select的部分
以上是針對類似問題的通用方案,適合列很多的情況。
如果僅限於上邊的例 子不做任何擴展,最死的寫法就是
insert into 縱表
from select * from(select stuno,stuname,marks1 from 橫表
union select stuno,stuname,marks2 from 橫表
union select stuno,stuname,marks3 from 橫表
)t
當然如果直接查詢生成表,也可以用select ...into的寫法
❻ SQL sever中將橫表轉縱表時的這段代碼是什麼意思,可以詳細解釋一下嗎
查詢每個 name 中 語文 的最大 result 值,如果 語文 的 result 沒有值,則返回0;
其他數學、物理原理一樣;
❼ sql server 縱表轉橫表
如果單純是你如上數據的話這樣:
創建表:
createtablet
(idint,
orderidint,
prfnoint,
prfidvarchar(10));
insertintotvalues(16385,171202,1,'FB065_1');
insertintotvalues(16385,171202,2,'FB065_06');
insertintotvalues(16385,171202,3,'FB065_06');
insertintotvalues(16385,171202,4,'FB065_06');
insertintotvalues(16386,171202,1,'FB065_1');
insertintotvalues(16386,171202,2,'FB065_06');
insertintotvalues(16386,171202,3,'FB065_06');
insertintotvalues(16386,171202,4,'FB065_06');
執行:
selectid,orderid,
max(casewhenprfno=1thenprfidend)prfid1,
max(casewhenprfno=2thenprfidend)prfid2,
max(casewhenprfno=3thenprfidend)prfid3,
max(casewhenprfno=4thenprfidend)prfid4
fromtgroupbyid,orderid
結果:
如果需求復雜的話,就要改別的方法了。
❽ plsql 中查詢時 怎樣讓查詢結果 縱表顯示
plsql的查詢要求列示固定的,類型也是一樣的,所以你的要求可以在外部應用程序實現
❾ mysql縱表轉橫表
分兩次進行不同的查詢就可以實現了
先查出組員信息,比如組員數量、文章總數、評論總數等
再查出組長信息
兩個查詢一合並就可以了
SQL角本如下:
selecta.用戶名組長,b.組員數量,b.文章總數,b.評論總數
from(select編號,用戶名fromtable_namewhere角色='組長')a,--找組長信息
(select組長,
count(1)組員數量,
sum(文章)文章總數,
sum(評論)評論總數
fromtable_name
where組長isnotnull
groupby組長)b--找組員信息
wherea.編號=b.組長
❿ SQL中的統計加橫表轉縱表
根本沒涉及橫縱。
select a.*,b.軍人人數,c.武警人數 from
(select 所在位置,count(*) as 警察人數 from 表 where 職務='警察' group by 位置) as a left jion
(select 所在位置,count(*) as 軍人人數 from 表 where 職務='軍人' group by 位置) as b
on a.所在位置=b.所在位置 left jion
(select 所在位置,count(*) as 武警人數 from 表 where 職務='武警' group by 位置) as c on a.所在位置=c.所在位置