日期:2014-05-17  浏览次数:20544 次

难度大啊,不知道怎么写这个sql语句啊。
本帖最后由 ruhong 于 2014-01-06 09:40:39 编辑
表a

指标序号 指标名称 上级指标
1         a        0
2         b        1
3         c        2

表b
分组序号 分组名称 指标项
1         xx     3

根据条件 分组序号=1
想得到以下结果
分组序号  指标类别 指标名称 指标项
1          a       c       3

就是指标类别是他的最顶级指标的名称,指标名称是他自己的名称。
求救。

 

------解决方案--------------------
你的这两个表中哪个是“指标类别” ?“指标类别是他的最顶级指标的名称” 这个是什么意思?
------解决方案--------------------
----------------------------------------------------------------
-- Author  :TravyLee(走自己的路,让狗去叫吧!)
-- Date    :2014-01-06 10:27:38
-- Version:
--      Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) 
-- Jul  9 2008 14:43:34 
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 6.1 <X86> (Build 7601: Service Pack 1)
--
----------------------------------------------------------------
--> 测试数据:a
if object_id('dbo.a') is not null drop table a
go 
create table  a([id] int,[name] varchar(1),[pid] int)
insert  a
select 1,'a',0 union all
select 2,'b',1 union all
select 3,'c',2
--> 测试数据:b
if object_id('dbo.b') is not null drop table b
go 
create table b([title] int,[groupname] varchar(2),[content] int)
insert b
select 1,'xx',3
go
alter FUNCTION F_GETROOT(@PID INT)
RETURNS varchar(20)
AS
BEGIN
    DECLARE @ID INT
    WHILE EXISTS(SELECT 1 FROM a WHERE ID=@PID)
    BEGIN
        SET @ID=@PID
        SELECT @PID=PID FROM a WHERE ID=@ID
    END 
    RETURN (select name from a where pid