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
Post a Comment