Завершенный SQL-запрос: членский бизнес-SQL-запрос членов - PullRequest
0 голосов
/ 11 июля 2010

Я запутался в данный момент.

У меня есть одна база данных, разработанная для компании MLM (многоуровневый маркетинг).Итак, есть одна база данных Члены .. каждый член имеет уникальный идентификатор, называемый membercode .. и все участники могут быть членами под ними .. может сделать 2 членов до 1 члена .. все участники добавляются в одну таблицу с именем "tbMembers" и для каждогоmember есть "parentID", где я добавляю членский код участника под кем этот член? .. верно?

Теперь, в чем дело ... Я хочу SQL-запрос, который может идти как под, так и под ... как "Джон Доу", имеющий двух членов под его именем "Сьюзан", "Элли" и "Сьюзан", такжеимея 2 члена под ней .. и то же самое для Элли.и, например .. «Джон Доу», имеющий около 300 участников в своей линии вниз?Все участники совершают транзакции ... как будто они покупают продукт, и счета-фактуры генерируются (таблицы счетов имеют 'memberID').Теперь запрос состоит в том, как сгенерировать запрос, который может рассчитать TurnOver нисходящего потока пользователя John Doe из SUM поля 'totalAmount' таблицы счетов-фактур?

Я использую Asp.net 2.0 (VB.net) и использую SQL Server 2005 Express.Как это сделать?Пожалуйста, помогите мне, парень.

Ответы [ 2 ]

2 голосов
/ 11 июля 2010

Вы можете использовать Рекурсивное общее табличное выражение , чтобы получить всех потомков, а затем объединить результаты в таблицу счетов.Что-то вроде следующего.

;WITH Members AS
     ( SELECT membercode,
             parentID
     FROM    tbMembers
     WHERE   name = 'John Doe' /*Obviously Id would be better*/

     UNION ALL

     SELECT c.membercode,
            c.parentID
     FROM   tbMembers c
            JOIN Members m
            ON     m.membercode= c.parentID
     )


SELECT SUM(totalAmount) AS Amount
FROM   invoices i
       JOIN Members m
       ON     i.MemberId = m.membercode
0 голосов
/ 11 июля 2010

Я думаю, вам нужно использовать рекурсивную пользовательскую функцию. Который рассчитает общую сумму.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...