我正在尝试找到他们通过描述链接的子部门,如果他们应该返回我使用以下查询的表中的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的条件的查询
主文件如下所示
上面的子债务表
答案 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
我在屏幕截图中看到的GeminDepartmentID
与DeptCode
表中的SubDept
相对应。我认为你没有加入正确的价值。