Ask a Question related to ASP, Design and Development.

  1. #1

    Default Need SQL query

    Hi there. U have table structure shown here:

    category (Int - AutoIncrement) parent_category(Int) Title(string)
    1 0
    HOME PAGE
    2 1
    FIRST DEPTH 1
    3 1
    FIRST DEPTH 2
    4 1
    FIRST DEPTH 3
    5 2
    SECOND DEPTH 1
    6 3
    SECOND DEPTH 2
    7 3
    SECOND DEPTH 3
    8 6
    THIRD DEPTH 1

    I want 1 (one) SQL query that can return me full depth for certain caregory.
    In some meta-language
    for category 8 it look like this:


    SELECT * FROM table WHERE category = 8
    WHILE parent_category <> 1
    SELECT * FROM table WHERE category = [parent_category from previous
    iteration]
    WEND


    So in that case resulting recordset would be

    category (Int - AutoIncrement) parent_category(Int) Title(string)
    8 6
    HOME PAGE
    6 3
    FIRST DEPTH 1
    3 1
    FIRST DEPTH 2

    I know that I can do this using more that one recordset, but I want all this
    in one recordset.
    I am using ADO, not ADO.NET

    Thanks




    Bola Guest

  2. Similar Questions and Discussions

    1. Query of Queries on query New type query
      In CF5 we have a page that creates a query, using queryNew and querySetCell and the like, we then used dbtype="query" and gave it's name so we could...
    2. query of query throwing weird exception
      One workaround: I had added rows to a cfsearch query, and set a numeric value in custom1 field that that query provides. A query of queries...
    3. Convert a query to a list, or find an item in a query
      Hi All, I am using CFPOP to retrieve mail from a server, then delete each message after I retrieve it. What I want to do is to check that I don;t...
    4. CAML Query: Multiple Query Fields Issue
      I need to Create a CAML Query Dynamically with VB to a Sharepoint WebService GetListItems Method. The User Could Select 1 to X Number of IDs...
    5. BCP query out executed by xp_cmdshell works fine from query analyzer but fails from VB Component
      Hi all, I have a stored procedure which returns a vast number of record and i have to write the output into a csv file. I'm using BCP utility to...
  3. #2

    Default Re: Need SQL query

    Bola,

    You can achieve this using user defined function, see following example.

    create table tree
    (category Int, parent_category Int, Title varchar(50))
    go
    insert into tree
    select 1, 0,'HOME PAGE' union all
    select 2, 1,'FIRST DEPTH 1' union all
    select 3, 1,'FIRST DEPTH 2' union all
    select 4, 1,'FIRST DEPTH 3' union all
    select 5, 2,'SECOND DEPTH 1' union all
    select 6, 3,'SECOND DEPTH 2' union all
    select 7, 3,'SECOND DEPTH 3' union all
    select 8, 6,'THIRD DEPTH 1'
    select * from tree
    go

    create function fn_get_tree (@y int)
    returns
    @tb table(empid int,
    supervisor int,
    empname varchar(300)
    )
    as
    begin
    declare @x table (empid int)

    insert into @x
    select parent_category from tree where category = @y
    union all
    select @y

    while 1=1
    begin
    insert into @x
    select parent_category from tree where category in (select distinct empid from @x)
    and parent_category not in(Select empid from @x)
    if @@rowcount = 0
    break
    end

    insert into @tb
    select * from tree where
    exists
    (select * from @x a where a.empid= tree.category)

    return
    end
    go

    --usage
    select * from fn_get_tree (7)
    --
    - Vishal



    Vishal Parkar Guest

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139