2016-09-10 3 views
0

表を子行を数えるには、列TypeIDの特定の値を持つ2である場合、このSQL Serverのカウント行が特定の値を持つ&も同じ特定のフィールドで

CREATE TABLE [CONTENTS].[ID] 
(
    [ID]   NVARCHAR (20) NOT NULL, 
    [NAME]  NVARCHAR (MAX) NOT NULL, 
    [CONTENT]  NVARCHAR (MAX) NULL, 
    [PARENT_ID] NVARCHAR (20) NOT NULL, 
    [TYPE]  INT    NOT NULL, 
    [SHARED]  INT    NOT NULL, 
    [CREATED]  DATETIME  NULL, 
    [ICON]  VARBINARY (MAX) NULL, 
    [UPDATED]  DATETIME  NULL, 
    [TASK_STATUS] INT    NULL 
); 

enter image description here

  • のように見えています私はその行を数える必要があります。

  • Typeが1である場合、それはまた、私はIDのためのすべての子行の数を取得したい別の行(子行)

の親になります。

最後に、私はすべての行がカウント合計します。

は、例えば、以下の表を考えます。タイプ2と

ID NAME PARENT_ID TYPE 
111 A  000   1 
222 B  111   1 
333 C  111   2 
444 D  111   2 
555 E  222   2 

ID→111のを有する行数はあります。 (つまり)222は、タイプ2を追加した111の子です。

期待される結果:COUNT 3

+0

MS SQL Serverのを与えることがあります...で表形式で –

+0

サンプル・データ、所望の結果を質問が役に立ちます。 –

+0

あなたの結果をどのように表示する必要がありますか?あなたの問題を解決するのに役立つでしょう。 –

答えて

0

これは完全な解決策ではなく、あなたのアイデア

//It will return 1 or 0 if id is unique 
select count(*) from tablex where type = 2 and id = x; 

//To get count of child rows with parent id 
select tablex.id, tablexb.child_count from tablex INNER JOIN (select parent_id, count(*) as child_count from tablex group by parent_id) as tablexb ON tablex.id = tablexb.parent_id where tablex.type = 1; 
関連する問題