0

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

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

请参见图片示例表格和预期结果之前/之后。 http://tinypic.com/r/kf31ci/5

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

4

1 回答 1

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
于 2013-05-08T22:46:06.497 回答