[AccessD] Uncertainty Data

Stuart McLachlan stuart at lexacorp.com.pg
Sun Feb 12 21:33:17 CST 2012


HI Thomas,

I've just come back and looked at this again.

One point struck me - would it be possible to change your table design to:

HierID  PartID  NHA  Qty
    1         2     1        1
    2         3     1        1
    3         4     2        1
    4         5     2        2
    6         5     3        1
    7         6     3        1

-- 
Stuart


On 12 Feb 2012 at 9:08, Thomas Ewald wrote:

> My database has two main tables (and zillions of others): tblParts stores
> the data for every part and assembly, and tblHierarchy stores the structure
> of assemblies. I'll give a simplified structure for each table, listing only
> what's germane to the problem at hand:
> 
> tblParts
> 
>         PartID          long (PK)
>         Weight          double (lbs)
>         UncertCode      text
> 
> tblHierarchy
> 
>         HierID          long (PK)
>         PartID          long (FK)
>         NHA             long (FK)
> 
> NHA = Next Higher Assembly. If parts 2 and 3 are components of assembly 1,
> then all three would be listed in tblParts, and tblHierarchy would list 2
> and 3 as PartIDs, each having 1 as its NHA (as in the example below).
> 
> UncertCode lists the code that identifies the level of certainty we
> (officially) have in the record's weight. For the purpose of this
> discussion, we'll say there are A, E, and R (Actual, Estimate and Roll-up,
> respectively). If tblParts shows an R, then the Weight will not be native to
> that record, but will be a simple sum (roll-up) of its components' weights. 
> 
> What I need is to know what percentage of the total weight is represented by
> each UncertCode. Since an "R" just shows data from components, I don't want
> its data; OTOH, I do want its components' data (assuming they aren't
> roll-ups themselves). 
> 
> Let see a simple example.
> 
> tblParts:
> 
> PartID  Weight  UncertCode
>     1        10           R
>     2          6                  R
>     3          4                  A
>     4          4                  E
>     5          1                  E
>     6          3                  A
> 
> 
> tblHierarchy:
> 
> HierID  PartID  NHA
>     1         2     1
>     2         3     1
>     3         4     2
>     4         5     2
>     5         5     2
>     6         5     3
>     7         6     3
> 
> 
> Part 1 is the main assembly, and I'm looking for its data; I need the weight
> represented by A and E codes. When traversing down the tree, R will just
> mean "keep going", while A and E mean "stop here and record the data, then
> go back up to the next limb on the tree".  Starting at part 1 (in
> tblHierarchy) as the NHA, we see it has two parts, 2 and 3. Part 2 is an R
> (in  tblParts), so we need to go on. We see that parts 4 and 5 are in 2;
> they are both E, so we can stop there. Going back to part 1, we now take
> part 3. Since it's an A, we can stop there (even if its components' weights
> did not add up to its given weight, we would not care). So, in this case, we
> have 
> 
> A:  Part 3 (4 lbs)
> E:  Part 4 (4 lbs) and 2 of Part 5 (2 x 1 lbs)
> 
> Total weight is 10 lbs, so we find that A represents 4 lbs, or 40%, and E
> represents 6 lbs or 60%. 
> 
> As I said, this is an easy example. I have 8 uncertainty codes, several
> vehicles (corresponding to Part 1 in this example; in other words, several
> starting points) about 15 levels and thousands of parts. What would be the
> best way to traverse the tree, getting only the non-R data for a vehicle?
> 
> Your help would be very much appreciated.
> 
> Tom Ewald
> Detroit Area
> 
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 




More information about the AccessD mailing list