mysql - SQL Table Schema for Level -Sublevel Type Table -


i created 4 table gives hiearchical category list. categories table;

+----+--------------+---------------+----------------+ | id | categoryname | ref. category | else | +----+--------------+---------------+----------------+ 

ref. category ( link column 1)

as example;

+---+------------+---+------+ | 1 | elektronik | 0 | ...  | | 2 | drink      | 0 | ...  | | 3 | computer   | 1 | ...  | | 4 | mouse      | 3 | ...  | | 5 | keyboard   | 3 | ...  | | 6 | juice      | 2 | ...  | | 7 | mouse cable| 4 | ...  | +---+------------+---+------+ 

employees table:

+------------+------+---------+-----------+ | employeeid | name | surname | | +------------+------+---------+-----------+ 

orders table:

+---------+-------+------+-----------+ | orderid | empid | date | | +---------+-------+------+-----------+ 

orderdetails table:

+---------+-----------+----------+-------+------------+ | orderid | productid | quantity | price | categoryid | +---------+-----------+----------+-------+------------+  

i want total prices of specific employees specific category , above levels (ref. categories 0 level) total prices employeeid 10

+-----------+------------+--------------+---------------+ | employeeid| categoryid | categoryname | total prices  | | 10        |    7       | mouse cable  | 3000          | | 10        |    4       | mouse        | 5000          | | 10        |    3       | computer     | 12000         | | 10        |    1       | elektronik   | 35000         | +-----------+------------+--------------+---------------+ 

i want create query starts specific refid , take categoryid, in next step, refid categoryid , continues refid 0

answer long below query works you

declare @rowresult table (     employeeid int,     categoryid int,     total int); declare @employeeid int; declare @categoryid int; declare @refid int;  set @employeeid = 100; set @categoryid = 7;  select @refid = refid categories categoryid = @categoryid;  while @refid > 0 begin      insert @rowresult     select e.employeeid, d.categoryid, sum(d.quantity * d.price) 'total'     employees e        inner join orders o on o.empid = e.employeeid       inner join orderdetails d on d.orderid = o.orderid     e.employeeid = @employeeid , d.categoryid = @categoryid     group e.employeeid, d.categoryid ;      set  @categoryid = @refid; select @refid = refid categories categoryid = @categoryid; end  select * @rowresult go 

Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -