SQL查询多个记录中的每个记录的特定值

时间:2014-01-23 20:18:50

标签: sql

我有一个涉及一对多关系的SQL问题。

我的数据库中有一个名为清单的表格。每个清单记录可以在表格中为 ChecklistMaterial 包含多个匹配项。 ChecklistMaterial 表中有一个字段,用于指示是否在指定已发货或未发货的特定字段中使用1或0来发货。

核对表级别,我想指出(在一个SQL语句中,其他核对表字段)是否已经发送了该核对表的所有材料。基本上,如果该清单的所有材料记录已经发货,它将在清单级别显示1。

这是我想要做的简单版本。如果这听起来完全偏离基础或采取合理合理的方法,请告诉我。

提前致谢!

2 个答案:

答案 0 :(得分:0)

喜欢这个吗?

select
    checklist.abc,
    checklist.def,
    (select sign(sum(shipped))
       from checklistmaterials
      where checklist.checklistid = checklistmaterials.checklistid
from
    checklist

答案 1 :(得分:0)

如果您确定ChecklistMaterial只有01,则此列的最小值将计算所有记录是否为1。

SELECT * ,
      (SELECT Min(checked)
         FROM ChecklistMaterial
        WHERE <JOIN between Checklist and ChecklistMaterial>
      )
  FROM Checklist

顺便说一句。使用Max代替Min会检查至少有一条记录是否有1