ورود

View Full Version : سوال: حساب كردن دو تا sum



E_Alikhani
چهارشنبه 14 مرداد 1388, 11: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, 12: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, 14: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, 14: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