0

テーブルを表示するこの選択クエリがあります

select distinct 
   a.afdeling as AFD,  
   convert(varchar(10),DateAdd(Day, DateDiff(Day, 0, a.datetrans) , 0),103) as datetrans  ,
   convert(varchar(10),DateAdd(Day, DateDiff(Day, 0, a.doe ), 0),103) as inputdate,  
   (select COUNT(distinct a.DOE)  from detail a left join
      estate b on a.CodeEstate=b.Code   group by
      a.afdeling, a.datetrans , convert(varchar(10),DateAdd(Day, DateDiff(Day, 0, a.DOE ) ,0),103)
      ) as total ,
   datediff(DAY,a.datetrans,a.DOE) as variant , 
   GetDiffStatus(a.datetrans,a.DOE) as status from
   detail a  left join
   estate b on a.CodeEstate=b.Code  where b.name='Estate 1' and convert(varchar(10),DateAdd(Day, Datediff(Day, 0,
   a.datetrans), 0),103)  between '01/01/2013' and '31/01/2013' Group
   BY a.datetrans, a.doe,DateDiff(Day, 0, a.doe),a.afdeling  order by
   a.afdeling, a.datetrans, a.inputdate  , a.variant,
   a.status

私がやろうとしているのは、テーブルの詳細にキーを持つ他のテーブル (エステート) の名前に基づいて、1 つのテーブルで同じ日付の合計 DOE をカウントすることですが、そのクエリを使用すると、サブクエリが複数を返したというエラーが表示されました1 つの値。サブクエリが =、!=、<、<=、>、>= の後にある場合、またはサブクエリが式として使用されている場合、これは許可されません。

この問題を解決する方法、私は SQL Server 2008 r2 を使用しています、ありがとう

4

1 に答える 1

1

サブクエリには句がありますが、外側のクエリと関連付ける句GROUP BYはありません。WHEREしたがって、複数の値が得られます。サブクエリ式の (おそらく単一の) 値を列の値として使用しているため、エラーが発生します。

サブクエリと外部クエリの両方で同じエイリアスを使用すると、混乱が増します。

相関サブクエリに関する追加情報を探したいとします。

于 2013-01-21T03:27:31.250 に答える