サブクエリを利用する形になるかと思います。
SQLを構築する時の考え方としては
1.SubNoが同じレコードのQtyを合計するSQLを構築します。返す値はSubNoとQtyの合計の2つでいいかと思います。
SQL
1SELECT SubNo,SUM(Qty) As Total FROM C GROUP BY SubNo
2.1で構築したSQLの結果から合計が0のSubNoを抽出します。
SQL
1SELECT SubNo FROM (SELECT SubNo,SUM(Qty) As Total FROM C GROUP BY SubNo) As A WHERE A.Total = 0
3.CテーブルからFlagが空白でSubNoが2で抽出したものに含まれるレコードをCテーブルから抽出します。
WHERE [項目名] IN (SELECT [項目名] FROM ~)
といったようにサブクエリとして記述できます。
また、DテーブルのJOINを追加すると上記SQLが複雑になって分かりにくいでしょうから、ビューを作成してそのビューに対して検索を行うように記述したほうがいいと思います。