2017-07-05 25 views
1

我有名爲「購物車」的表。字段是:如何做添加在Sql Server中使用動態生成字段?

  • CartId
  • ClientId
  • ProductId
  • Qty

現在我加入這個表ProductMaster得到ProductNameProuctPrice

select cc.CartId,cc.ProductId,pm.ProductName,cc.Qty, 
     (pm.ProductPrice * cc.Qty) As SubTotal 
from ClientCart as cc 
    inner join ProductMaster as pm on cc.ProductId = pm.ProductId 

現在我想生成GrandTotal使用動態字段SubTotal。我怎樣才能做到這一點?

+0

去掉無關的MySQL標籤 – Jens

+0

添加一些示例表數據和預期的結果。 (作爲格式文本。) – jarlh

回答

0
with CTE as 
(
select cc.CartId,cc.ProductId,pm.ProductName,cc.Qty, 
     (pm.ProductPrice * cc.Qty) As SubTotal 
from ClientCart as cc 
    inner join ProductMaster as pm on cc.ProductId = pm.ProductId 
where cc.ClientId = @id 
) 
select * 
from CTE 
union 
select null,null, null,null, sum(SubTotal) -- this is a grand total of all sub totals 
from CTE 

這不是正確的彙總方法,但也不是你的所以這將很好地工作

+0

這不是生成單獨的grandtotal字段。 – DevKriya

+0

@DevKriya編輯你的問題來解釋更好。另外,即使在結果中,SQL也有列。字段不是SQL對象,因此解釋爲一行 – JohnHC

0

試試這個:

select subtable.CartId, sum(subtable.SubTotal) 
from (
select cc.CartId,cc.ProductId,pm.ProductName,cc.Qty, 
     (pm.ProductPrice * cc.Qty) As SubTotal 
from ClientCart as cc 
inner join ProductMaster as pm on cc.ProductId = pm.ProductId 
where cc.ClientId = @id) subtable 
group by subtable.CartId;