0

ビューは最初の 3 つの列を取得します。totalCount合計数を取得するビューにもう 1 つの列 ( ) を追加する必要があります。

CId CCId CCount  totalCount
1      a      3         6
1      a      3         6
1      b      3         6
1      c      3         6
2      b      2         6
2      b      2         6
2      a      2         6
2      a      2         6
3      v      1         6

totalCountas 6の入手方法は?

(Cid=1 Ccount=3 Cid=2 Ccount=2 Cid=3 Ccount=1 のビジネス ルール したがって、totalCount =3+2+1 =6)

4

3 に答える 3

1

このコードで、私は望ましい結果になりました:

select CId
      ,CCId
      ,CCount
      ,(select SUM(a.tcount) 
          from (select distinct CId ,CCount as tcount
       from  dbo.Test) as a ) totalcount
from dbo.Test
于 2013-01-16T15:52:48.937 に答える
1
SELECT  a.CID, a.CCID, a.CCOUNT,
        b.TotalCount
FROM    Table1 a, (SELECT SUM(DISTINCT cCOunt) TotalCount 
                   FROM Table1) b

アップデート

アンドマーがコメントで指摘したように、クエリが更新されました。

SELECT  a.CID, a.CCID, a.CCOUNT,
        b.TotalCount
FROM    Table1 a, 
(
  SELECT SUM(TotalCount) TotalCount
  FROM
  (
      SELECT MAX(cCOunt) TotalCount 
      FROM Table1
      GROUP BY CId
   ) c
) b
于 2013-01-16T15:01:45.993 に答える
0

あなたの例のデータから、 aCidは、おそらく繰り返される の値を 1 つしか持つことができないと想定していますCCount。その場合、maxを使用してランダムなもの (たとえば ) を選択できます。group bysum

select  sum(OneCCCount) as TotalCount
from    (
        select  max(CCount) as OneCCCount
        from    YourTable
        group by
                CId
        ) as SubQueryAlias
于 2013-01-16T14:54:10.803 に答える