View Full Version : سوال: حساب كردن دو تا sum
  
E_Alikhani
چهارشنبه 14 مرداد 1388, 12:20 عصر
سلام دوستان
من ميخواه SQL كه به اينصورت است 
SELECT     SUM(t1) AS a, SUM(t2) AS b, SUM(t1) + SUM(t2) AS x
FROM         dbo.Table2
بصورت 
SELECT     SUM(t1) AS a, SUM(t2) AS b, (a + b) AS x
FROM         dbo.Table2
بنويسم
داخل Access بهم جواب ميده اما داخل SQL Server  خطا مي گيره
بهنام بهمنی
چهارشنبه 14 مرداد 1388, 13:07 عصر
در داخل sql نامهایی که  (alias هایی که) برای ستونها ایجاد می شود در همان select و در همان level قابل استفاده نیست.
 
اگر خیلی اصرار به این موضوع دارید می توانید از nested Query استفاده کنید:
 
 
Select a,b,a+b from
(
SELECT SUM(t1) AS a, SUM(t2) AS b
FROM dbo.Table2
)
محمد سلیم آبادی
چهارشنبه 14 مرداد 1388, 15:16 عصر
همانطوری که دوستمان گفت. نمی توانید از Alias در همان query استفاده کنید.
و راههای مختلفی برای این کار وجود دارد که یک نمونه آن CTE می باشد.
 
WITH T1 
AS
(
      SELECT a=SUM(t1), b=SUM(t2)  
      FROM Table2
)
 
SELECT a, b, a+b AS [x]
FROM T1
محمد سلیم آبادی
چهارشنبه 14 مرداد 1388, 15:19 عصر
اگر خیلی اصرار به این موضوع دارید می توانید از nested Query استفاده کنید:
 
 
Select a,b,a+b from
(
SELECT SUM(t1) AS a, SUM(t2) AS b
FROM dbo.Table2
)
 
امکان دارد یک کمی در مورد nested query توضیح دهید.
در ضمن جداول مشتق شده یا derived table  نیاز به یک نام مستعار دارند.
 
 
Select a,b,a+b from
(
SELECT SUM(t1) AS a, SUM(t2) AS b
FROM dbo.Table2
) AS D
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.