sql上級
⑴ sql獲取所有上級節點的Id
兩個方法
1、要麼用自定義函數(SQL任何版本都支持)
2、要麼用WITH語句做子查詢(SQL2005和以上版本均支持)
⑵ sql語句查詢員工的上級,在同一張表中
如果是SQL2005以上則可以用CTE遞歸寫法
use tempdb
go
create table #emp
(eid integer not null,
ename varchar(10) not null,
epid integer null,
)
insert into #emp
select 1,'A',5
union all
select 2,'me',3
union all
select 3,'bos',4
union all
select 4,'boss',null
select * from #emp
;with empcte as
(select epid,(select ename from #emp b where b.eid = a.epid) as name from #emp a where ename = 'me'
union all
select b.epid,(select ename from #emp where eid = b.epid) as name from empcte a join #emp b on a.epid = b.eid
)
select * from empcte where epid is not null
⑶ sql問題,一個員工可能有一個上級部門,可能有多個上級部門,如何查詢查詢這個員工所在的頂級部門。
如果是oracle 資料庫, 可以使用start with ..connect by 語法。
查出左右部門後在查沒有上級部門的部門(使用子查詢)
關於語法參考:
http://blog.csdn.net/Bobwu/archive/2008/12/17/3539604.aspx
⑷ sql 一個表中 員工名稱、員工號、上級號、 然後要求查詢所有員工 和其直接上級,這么干是不是有病
這里假設上級號也就是同一張表裡的員工號,而且員工號無重復。
同表連接可用表起別名的辦法避免混淆,為了讓沒有上級的員工也能被查出來,這里使用left join聯接。實現SQL語句如下:
select a.員工號,a.員工名稱,
b.員工名稱 as 上級名稱 from
員工表 a left join 員工表 b
on b.員工號=a.上級號;
⑸ 怎麼用SQL查詢結果的會計科目 顯示包括上級科目名稱
欄位裡面添加子查詢獲取上級科目,再用concat函數拼接自己的會計科目,整個查詢sql應該是select id,concat((select name from 表名 where id = left(a.id)limit 1),「\」,a.name) from 表名 a。
⑹ sql 查上級行號的行名
select行名fromHANGHAOwhere行號in(select上級行號fromHANGHAOwhere行號=111)
⑺ 用SQL如何列出所有員工的姓名及其直接上級的姓名
select Table1.ename Table2.ename from emp Table1,emp Table2 where Table1.mgr=Table2 .empno 追問: 嗯是的呢 回答: 上面的不能運行嗎?我在Sql Server裡面測試過了沒問題的。 提問者 的感言: 嗯可以了 你這個意思我大概明白了 也算比較好懂 麻煩你了 2009-08-24其他回答(4) 熱心問友 2009-08-24差不多 追問: 可是不能出結果啊 高手幫忙看看 回答: 查詢上級表中是否存在員工的名稱么 補充: 欄位沒問題么 追問: 當然有的 可是不知道如何查詢簡單的就是select mgr,ename from emp可是規定要用子查詢來寫還是不能太熟練的掌握 麻煩指點指點 回答: 我是說你的員工姓名的欄位在 上級表中是否存在或是 關聯 主外鍵關系 ? 追問: 不存在的 回答: 什麼不存在的啊 ...附耳細說6級2009-08-24不對select ename (select *** from *** where ****** ) mgr from emp derek9級2009-08-24 select emp.ename,emp1.ename as mgrename
from emp left outer join (select empno from mgr) emp1
on emp.mgr=emp1.empno 補充: 忘了取ename,改成
select emp.ename,emp1.ename as mgrename
from emp left outer join (select empno,ename from mgr) emp1
on emp.mgr=emp1.empno
考慮有的emp可能沒有上級
⑻ SQL級聯查詢,部門表自連接,需要查出某個部門的上級部門及其上上級部門,上級部門無限個,如何查詢
用(select…start with…connect by…prior) 具體給你個參考地址:http://www.cnblogs.com/linjiqin/archive/2013/06/24/3152674.html
⑼ 關於sql的上下級查詢統計(如圖)
selectcode_name,amountfrom
(selectleft(code,2)ascode,ISNULL(SUM(amount),0)asamount
fromagroupbyleft(code,2))astmp
innerjoinbontmp.code=b.code
⑽ sql ,如何通過用戶表查出所有上級部門
這個的話,單靠sql好像不能實現,因為ids那個欄位保存的方式不太支持
你可以將所有部門放在map裡面,然後查詢用戶信息的時候,關聯一下查找出來ids,再根據部門id再查找出來部門名稱,這個也簡單,直接split ids 然後用map.get就好了