Sum af mappe hierarki, child/parent
Hej eksperter,Jeg leger med et lille projekt, hvor jeg har en tabel med mapper, hvori der kan laves hoved og undermapper i et utal af kombinationer. Et eksempel på dette kan være
mID, mNavn, mForældre
1, Hovedmappe, Null
2, Undermappe 1, 1
3, Undermappe 2, 1
4, Undermappe 2.1, 2
5, Undermappe 2.1.1, 4
6, Hovedmappe 2
Til alle mapperne er en tabel med Mappe linjer, som indeholder en værdi, som via JOIN kan hentes ind på mapperne.
Mit problem er dog at jeg ønsker en total af alle undermapper, så hovedmappen vil få en ALIAS kolonne med totalen af samtlige undermapper tilknyttet hovedmappens ID.
Jeg har en steng, som fungere nogenlunde, men den tager kun hoved og undermappen, og kommer ikke helt i bund.
`Parent`.`FolderID`,
`Parent`.`FolderParentID`,
`Parent`.`FolderName`,
`Parent`.`FolderPriority`,
SUM(`Parent`.`Total`) AS `FolderValue`,
SUM(`Child`.`Sum`) AS `FolderTotal`,
IFNULL(SUM(`Parent`.`Total`), 0) + IFNULL(SUM(`Child`.`Sum`), 0) AS `FolderSum`
FROM
(
SELECT
`xFolder`.`FolderID`, `xFolder`.`FolderName`, `xFolder`.`FolderParentID`, `xFolder`.`FolderPriority`, SUM(`xLine`.`FolderLineTotal` * `xLine`.`FolderLineQuantity`) AS `Total`
FROM `x_Folder` AS `xFolder`
LEFT JOIN `x_FolderLine` AS `xLine` ON `xLine`.`FolderID` = `xFolder`.`FolderID`
GROUP BY `xFolder`.`FolderID`
) AS `Parent`
LEFT OUTER JOIN
(
SELECT
`yFolder`.`FolderID`, `yFolder`.`FolderParentID`, SUM(`yLine`.`FolderLineTotal` * `yLine`.`FolderLineQuantity`) AS `Sum`
FROM `x_Folder` AS `yFolder`
LEFT JOIN `x_FolderLine` AS `yLine` ON `yLine`.`FolderID` = `yFolder`.`FolderID`
GROUP BY `yFolder`.`FolderID`
) AS `Child`
ON `Child`.`FolderParentID` = `Parent`.`FolderID`
GROUP BY `Parent`.`FolderID`
ORDER BY
`Parent`.`FolderParentID` IS NOT NULL,
`Parent`.`FolderPriority` DESC,
COALESCE(`Parent`.`FolderID`, `Parent`.`FolderParentID`)
Jeg håber det giver mening, og jeg har vedlagt et skærmbillede, som forhåbentlig kan uddybe min forklaring http://tinypic.com/r/32zqer4/8
på forhånd tak