質問

今回が初めてのSQLサーバー報告サービスで、英語上級者の方にお尋ねしたのしなければならない。

  • クエリの一覧を取得するため人気のId
  • サブクエリの各項に特別のテーブル

理想的には、最終報告書の列のようになります:

[ID] [property1] [property2] [SELECT COUNT(*)
                              FROM AnotherTable 
                              WHERE ForeignID=ID]

あり方を構築する巨大なSQLクエリーなことにより、全くもうcompartmentalizeます。お勧めのアプローチを書くト機能をサブクエリの各行?させます。

役に立ちましたか?

解決

私の使用をお勧めし SubReport.い場所にSubReportテーブル。

他のヒント

によってどのようにしたいの出力を見て、subreportがきグループID、property1,property2の項目からその他のテーブルとしての詳細事項と仮定したいショー以外にも数えます。-

のようなもの

select t1.ID, t1.property1, t1.property2, t2.somecol, t2.someothercol
from table t1 left join anothertable t2 on t1.ID = t2.ID

@カールトンJenkeと思いますが、外側joinのより良い演奏を相関サブクエリの例でやりくりは夫婦で別にされていま.覚えているのですが、サブクエリのニーズは実行されます。

最も簡単な方法です:

select *,
 (select count(*) from tbl2 t2 where t2.tbl1ID = t1.tbl1ID) as cnt
from tbl1 t1

こちらは可能なバージョン(テーブル変数):

declare @tbl1 table
(
 tbl1ID int,
 prop1 varchar(1),
 prop2 varchar(2)
)

declare @tbl2 table
(
 tbl2ID int,
 tbl1ID int
)

select *,
 (select count(*) from @tbl2 t2 where t2.tbl1ID = t1.tbl1ID) as cnt
from @tbl1 t1

これは明らかにするだけでな原例標準のルール適用のような選択*。


更新から月21'08 21:27:
@AlexCuseあ完全に同意します。

ますが、その外の参加もその彼のサンプル出力をカウントのことを考えた彼は、カウントは返している場合、正しくはテーブルは外参加しました。はもちろん参加できな記録にかけられます(1からの入力tbl1に一致する2つのエントリtbl2=2を返しますを使用することによって意図しない.

いうことなんでしょうけれども、これに尽きる具体的に何を検索するニーズへ復帰します。


更新から月21'08 22:07:
答えはその他のパーツのご質問はVB機能のでしょうか。No.絶対にいけません。なにもこのシンプルです。

機能は非常に悪い性能は、各行の帰還セットを実行します。

したい場合は"compartmentalize"のパーツのクエリでアプローチでのように保存されている。構築温度テーブルについてのクエリー、挿入の結果を表していないから問合せが必要と更新の温度テーブル(または挿入をより温度。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top