문제

I am trying to create a report that has a summary for each group. For example:

ID           NAME              COUNT           TOTAL     TYPE
-------------------------------------------------------------
1            Test 1            10                         A
2            Test 2            8                          A
                                               18

7            Mr. Test          9                          B
12           XYZ               4                          B
                                               13

25           ABC               3                          C
26           DEF               5                          C
19           GHIJK             1                          C
                                               9

I have a query that can do everything except the TOTAL columns:

       select sd.id DATA_REF_NUM ID, count(sd.DATA_DEF_ID) COUNT, defs.data_name NAME, sd.type
       from some_data sd, data_defs defs
       where sd.data_def_id = defs.data_def_id
       group by some_data.type, some_data.id, defs.data_nam
       order by some_data.id asc, count(amv.MSG_ID) desc ;

I'm just not sure how to get a summary on a group. In this case, I'm trying to get a sum of COUNT for each group of ID.

UPDATE:

Groups are by type. Forgot that in the original post.

TOTAL is SUM(COUNT) for each group.

도움이 되었습니까?

해결책

How about using ROLLUP like...

select sd.id DATA_REF_NUM ID, count(sd.DATA_DEF_ID) COUNT, defs.data_name NAME, sd.type from some_data sd, data_defs defs where sd.data_def_id = defs.data_def_id group by ROLLUP(some_data.type, (some_data.id, defs.data_nam)) order by some_data.id asc, count(amv.MSG_ID) desc ;

This works for a similar example in my database, but I only did it over two columns, not sure how it will function over more...
Hope this is helpful,
Craig...

EDIT: In a ROLLUP, columns you want to sum over but not subtotal over like id and data_nam should be lumped together inside the ROLLUP in parantheses)

다른 팁

TaxonomyFieldValueCollection을 생성하여 다중 값 관리 메타 데이터 필드를 설정할 수 있습니다. SetFieldValue 메소드를 사용 하여이 컬렉션을 필드에 추가하십시오.

처음으로 관리되는 메타 데이터 필드를 가져옵니다

가능한 방법 (더 많은 방법이 있음)이 작업을 수행하는 것은 ID 필드를 가져 오는 것입니다.

$field = $item.Fields | ? {$_.Id -eq $fieldId}
$tf = [Microsoft.SharePoint.Taxonomy.TaxonomyField]$field 
.

다중 값 필드가 있는지 확인하고 TAMSET을 가져 와서 TAXONAMYFIELDVALUECOLLECTION을 작성하십시오.아래 예제에서 사용 가능한 모든 용어가 추가됩니다.

if ($tf.AllowMultipleValues) {
    $ts = Get-SPTaxonomySession -Site $item.Web.Site
    $tstore = $ts.DefaultSiteCollectionTermStore
    $termSet = $tstore.GetTermSet($tf.TermSetId)
    $taxCollection = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValueCollection($field)
    $termSet.GetAllTerms() | %{
        $taxonomyFieldValue = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($field)
        $taxonomyFieldValue.TermGuid = $_.Id
        $taxonomyFieldValue.Label = $_.Name
        $taxCollection.Add($taxonomyFieldValue)
    }
}
.

ID별로 추가하려면 예를 들어 예를 들어 사용할 수 있습니다

$term1 = $termSet.Terms | ? {$_.Id -eq "26797705-ef0f-4d49-b7d8-f23112a325aa"} 
$taxonomyFieldValue = new-object Microsoft.SharePoint.Taxonomy.TaxonomyFieldValue($field)
$taxonomyFieldValue.TermGuid = $term1.Id
$taxonomyFieldValue.Label = $term1.Name
$taxCollection.Add($taxonomyFieldValue)
.

마지막으로 컬렉션을 필드에 추가하고 항목을 업데이트

$tf.SetFieldValue($item, $taxCollection)
$item.SystemUpdate($false);
.

Try a subquery that returns the count of all the items of the type. This would

select sd.id DATA_REF_NUM ID, count(sd.DATA_DEF_ID) COUNT, tot.TOTAL_FOR_TYPE, defs.data_name NAME, sd.type
   from some_data sd, data_defs defs, 
      (select count(sd2.DATA_DEF_ID) TOTAL_FOR_TYPE 
       from some_data sd2
       where sd2.type = sd.type) tot
   where sd.data_def_id = defs.data_def_id
   group by some_data.type, some_data.id, defs.data_nam
   order by some_data.id asc, count(amv.MSG_ID) desc ;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top