Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何编写查询_Sql - Fatal编程技术网

Sql 如何编写查询

Sql 如何编写查询,sql,Sql,我有一张如下的桌子 Id是主键 +----+---------------+--------------+--------------+--------------+ | Id | BaseQuestionId | ColumnContent| Active Flag | DependentId | +----+--------------------+--------------+--------------+--------------+ | 1 | 0

我有一张如下的桌子

Id是主键

+----+---------------+--------------+--------------+--------------+ | Id | BaseQuestionId | ColumnContent| Active Flag | DependentId | +----+--------------------+--------------+--------------+--------------+ | 1 | 0 | Ques One | Y | 0 | | 2 | 0 | Ques Two | Y | 0 | | 3 | 0 | Ques Three | N | 0 | | 4 | 1 | Ques One1 | Y | 1 | | 5 | 1 | Ques One2 | Y | 1 | | 6 | 1 | Ques One4 | Y | 1 | | 7 | 2 | Ques One5 | Y | 1 | | 8 | 2 | Ques One6 | Y | 1 | | 9 | 3 | Ques One7 | Y | 1 | | 10 | 1 | Ques One8 | N | 1 | | 11 | 3 | Ques One9 | N | 1 | | 12 | 3 | Ques One10 | Y | 1 | +----+--------------------+--------------+--------------+--------------+ +----+---------------+--------------+--------------+--------------+ |Id | BaseQuestionId | ColumnContent |活动标志| DependentId | +----+--------------------+--------------+--------------+--------------+ |1 | 0 |等于1 | Y | 0| |2 | 0 |问题2 | Y | 0| |3 | 0 |问题3 | N | 0| |4 | 1 |问题1 | Y | 1| |5 | 1 |问题2 | Y | 1| |6 | 1 |问题一4 | Y | 1| |7 | 2 |问题一5 | Y | 1| |8 | 2 |问题一6 | Y | 1| |9 | 3 |问题一7 | Y | 1| |10 | 1 |问题8 | N | 1| |11 | 3 |问题一9 | N | 1| |12 | 3 |问题一10 | Y | 1| +----+--------------------+--------------+--------------+--------------+ 我需要计算活动问题的数量(其中活动标志='A')

通过考虑coulmn相关问题(0-基问题,1-相关问题):

TotalBaseQues=3,其中('2'激活和'1'非激活) TotalDependentQueues=9,其中('7'活动和'2'非活动)

即使基础问题是非活动的,我需要通过考虑其活动的从属问题来列出基础问题

我需要以下结果: TotalActiveBaseQuestion=3

请帮帮我


我需要编写一个查询以获得输出。

假设只有一个嵌套问题:

SELECT COUNT(*) FROM tbl WHERE DependentId = 0 AND [Active Flag] = 'Y'
SELECT Count(*)
FROM tbl a
WHERE DependentId = 0
AND (
    a.[Active Flag] = 'Y'
        OR EXISTS (
        SELECT 1 
        FROM tbl b 
        WHERE b.BaseQuestionID = a.ID 
       AND b.[Active Flag] = 'Y' 
    )
)
如果嵌套更深,则需要使用迭代和循环,这取决于您使用的数据库。

请尝试以下操作:

 SELECT COUNT(DISTINCT A.Id)
   FROM tbl AS A
        LEFT JOIN tbl AS B ON B.BaseQuestionId = A.Id AND B.DependantId = 1
  WHERE B.Id IS NOT NULL
    AND (A.[Active Flag] = 'Y' OR B.[Active Flag] = 'Y')

请参见我的示例。

是您的问题:显示活动标志为“Y”的基本问题的计数,但如果其任何受抚养人处于活动状态,则包括非活动问题?请将问题的标题更改为更有意义的标题,并提供您尝试过的内容的详细信息。