2013-09-25 54 views
0

編輯另一個表: 嘿大家,T-SQL計數,並得到字段和從具有相同的GUID相關

我想通了

select LI.ProjectId, count(*) as numLineItems 
into #temp 
from dbo.SQLLineItems as LI 
group by LI.ProjectId 
having COUNT(*) < =200 

select numLineItems, count(*), SUM(PT.GrandTotalSell) from 
#temp 
inner join dbo.SQLProjectTotals as PT 
on PT.ProjectId = #temp.ProjectId 
group by numLineItems; 

謝謝您的幫助。


我有兩個包含項目信息的表。表1包含LineItem,每個LineItem都具有對該表唯一的GUID和對於ProjectID的GUID。每個ProjectID都有重複項,因爲一個ProjectID可以有多個LineItem。

表2通過項目ID鏈接到表1,GUID在該表中是唯一的。表2還包含每個項目的價格。

我想通過LineItems的數量來分解項目,看看有多少個項目是1,2,3,4 ...項目項目。

我寫了一個可行的查詢:

use FieldedProjects; 

select LI.ProjectId, count(*) as numLineItems 
into #temp 
from dbo.SQLLineItems as LI 
group by LI.ProjectId 
having COUNT(*) < =15 

select numLineItems, count(*) from 
#temp 
group by numLineItems; 

,但現在我想修改它顯示的價格總和。因此,項目總價格爲1項項目爲100,2項工程爲300,...

我想這樣

use FieldedProjects; 

select LI.ProjectId, count(*) as numLineItems, SUM(PT.GrandTotalSell) as projectTotal 
into #temp 
from dbo.SQLLineItems as LI 
inner join dbo.SQLProjectTotals as PT 
on LI.ProjectID = PT.ProjectID 
group by LI.ProjectId 
having COUNT(*) < =15 

select numLineItems, count(*), projectTotal from 
#temp 
group by numLineItems; 

但由於projectTotal未在包含它給了我一個錯誤集合函數。難道應該是

select numLineItems, count(*), SUM(projectTotal) from 
+0

'組由numLineItems,projectTotal' - 將它的工作? –

+0

可以說你有三個2項目項目,10,20,30作爲項目總數。在你的結果中,你希望看到一行2作爲[2-item],3作爲countOf2ItemProjects,以及???你想要再次總結這些projectTotals還是逗號分隔數字的字符串表示? – user2065377

+0

我想要項目總計和其旁邊的一列,即計算每個項目的GrandTotalSell總和。那麼n項目項目的數量是多少,以及所有n項目項目的GrandTotalSell的總和是多少?我會嘗試羅馬的回答,看看會有什麼結果。它也可以像 那樣簡單numLineItems,projectTotal – Adam

回答

0
select * 
from dbo.SQLProjectTotals as PT 
cross apply 
(
    select count(*) 
    from dbo.SQLLineItems LI 
    where LI.ProjectID = PT.ProjectID 
) items(Count) 
where items.Count <= 15 
相關問題