【问题标题】:ms access reports and queriesms 访问报告和查询
【发布时间】:2009-09-10 09:26:20
【问题描述】:

美好的一天

我正在创建一个物料清单程序。

有两个名为 Products 和 Sub_Products 的主表。

在 Products 表中,字段为 (Product_Name, Code)。在 Sub_Products 表中,字段为 (Code, Sub_Name)。

表格与代码链接,即:一个产品由许多子产品组成,每个子产品也是一个产品,使其具有许多子产品。

我创建了一个读取产品并获取其子产品的查询。我需要一个查询来比较 Sub_Name 和 Product_Name,然后检查更多的 sub_products,直到找不到更多的 sub_products。

我创建了一个获取 product_name 的查询,而不是获取 component_name 的查询,而不是另一个将 component_name 更改为 product_name 并获取其组件的查询

所以每次必须手动创建查询才能看到下一级,有没有其他办法..

查询第 4 个查询的 sql 语句---------

SELECT [Query3rd].Component_Name, products101.Our_Product_Code, products101.Product_Name, Sub_Products101.Component_Name FROM (Query3rd INNER JOIN products101 ON [Query3rd].Component_Name=products101.Product_Name) INNER JOIN Sub_Products101 ON products101.Our_Product_Code=Sub_Products101.Our_Product_Code WHERE ((([Query3rd].Component_Name)=(products101.Product_Name)));

【问题讨论】:

    标签: ms-access ms-access-2007


    【解决方案1】:

    如果您坚持使用您当前使用的Adjacency list model,那么可以,没有其他方法。

    如果您切换到nested set model,您的问题将得到解决,但会有其他取舍。

    我建议您阅读 Joe Celko 所著的《聪明人的 SQL 中的树和层次结构》一书,并做出明智的决定。

    【讨论】:

      【解决方案2】:

      过去,为了解决这个问题,我会使用一个大的临时表,其中包含 level1、level2、level3 等字段。Level1 当然是你放置“根”对象的地方......也就是说,对象没有父母。

      然后您创建一个函数,该函数递归调用自身并将表格填充到所有级别。这有点令人讨厌,但它确实有效。

      我已经有一段时间没有这样做了......我会看看我是否可以在某个地方找到该功能,但我怀疑我能否得到它。

      但我敢打赌,其他人有更多可用的代码。任何人?有人吗?

      赛斯

      PS...BOM 在树形视图控件中显示效果很好。

      【讨论】:

        【解决方案3】:

        请参阅我对您上一个问题的回复。现已删除。

        这是标准的物料清单问题。请参阅Modules: Bill Of Materials,尽管我确信还有很多其他示例。

        【讨论】:

        • 托尼,这是他唯一的问题。你的答案在哪里?赛斯
        • 然后他删除了他的另一个帖子。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-18
        • 1970-01-01
        相关资源
        最近更新 更多