查询1表中的记录,其中第2表描述记录是否需要填写字段

时间:2013-05-08 22:12:28

标签: mysql sql visual-studio-2010 oracle

我有一个包含记录和数据的表(master_tbl)和一个描述哪些字段需要数据的表(lookup_tbl)。

我正在尝试将代码字段作为键加入,其他字段具有相同的名称。

请查看示例表格的图片以及预期结果之前/之后。 http://tinypic.com/r/kf31ci/5

出于某种原因,我无法弄清楚这一点。它真的很容易,还是我应该在VB.NET中使用它?

1 个答案:

答案 0 :(得分:1)

假设您的lookup_tbl包含位而不是字母Y / N(因此Y = 1,N = 0),您可以执行以下操作。

注意:从您发布的图片中可以看出,如果查询表中的reqd为N,那么该行将始终无效,因此我已在下面的CASE语句中明确地执行了此操作。

SELECT
mt.tag, 
mt.code,
lt.reqd,
mt.color,
mt.fruit
CASE 
  WHEN lt.reqd = 0 THEN 0
  WHEN ISNULL(NULLIF(mt.color, ''),0) = lt.color AND ISNULL(NULLIF(mt.fruit, ''), 0) = lt.fruit THEN 1
  ELSE 0
END AS valid 
FROM master_tbl AS mt
INNER JOIN lookup_tbl AS lt ON mt.code = lt.code