查询查找子部门vb.net mssacces 97 sql

时间:2014-03-27 10:07:56

标签: sql vb.net ms-access

我正在尝试找到他们通过描述链接的子部门,如果他们应该返回我使用以下查询的表中的id的id。

SELECT DISTINCT Subdeptcode
        ,SubDepartment
    FROM SkechersPricat
    WHERE SubDepartment IN ( SELECT DISTINCT description
                                FROM SubDept )
        AND processed = false
        AND SubDeptCode = 0

我需要能够从sub dept表中返回subdeptcode如果存在一个存在,如果存在一个不存在则创建它,所以我需要一个可以解决使用vb.net的条件的查询

主文件如下所示 enter image description here

SubDebt Table

上面的子债务表

1 个答案:

答案 0 :(得分:0)

首先让我们看一下您的查询

SELECT DISTINCT Subdeptcode
        ,SubDepartment
    FROM SkechersPricat
    WHERE SubDepartment IN ( SELECT DISTINCT description
                                FROM SubDept )
        AND processed = false
        AND SubDeptCode = 0

您试图说明SubDepartment列需要位于SubDept表的description值之一中。除非你的SubDepartment完全符合描述,否则它不会返回任何内容。

您的查询的正确语法将使用LEFT OUTER JOIN。通过使用LEFT OUTER JOIN,您要说的是从左表中获取所有结果,并且只在右表中找到匹配的记录。因此,即使SubDept表中没有匹配项,您仍然可以从主表中获取所有记录。

您的查询将是这样的

SELECT DISTINCT s.Subdeptcode
       ,s.SubDepartment
    FROM SkechersPricat s
    LEFT OUTER JOIN SubDept sd
        ON s.SubDepartment = sd.description
    WHERE s.processed = false
        AND s.SubDeptCode = 0

我在屏幕截图中看到的GeminDepartmentIDDeptCode表中的SubDept相对应。我认为你没有加入正确的价值。