PDA

View Full Version : استفاده از ستون موقت ایجاد شده در خود Select



pezhvakco
دوشنبه 24 خرداد 1389, 18:48 عصر
درود :
چطوری میشه از یک ستون ساخته شده در یک select در خودش استفاده کرد، یه دستوری مانند زیر :


SELECT SUM(Col1 * Col2) AS Expr1, SUM(Expr1 + Col3) AS Expr2
FROM Table1

در کد دستور بالا میخوام از دوباره کاری محاسبه یک مقدار جلوگیری بشه و از خروجی که بدست می یاد استفاده کنم .

سپاس .

فکر خوش .

محمد سلیم آبادی
دوشنبه 24 خرداد 1389, 22:49 عصر
سلام،
این کار امکان پذیر نیست. در همان لحظه امکان استفاده از نام مستعاری که به یک عبارت دادین وجود ندارد. یعنی SQL Server با دیدن نام Expr1 به دنبال این ستون در جدول می گردد که با شکست مواجه می شود.
برای حل این مساله می توانید از یک عبارت جدول Derived Table یا CTE استفاده کنید (در صورتی که نمی خواهید دوباره عبارت محاسباتی را بنویسید)
مثل این: (که البته مثالی که زدین کاملا شفاف نیست!)

SELECT SUM(Expr1), SUM(Expr1 + Col3) AS Expr2
FROM
(
SELECT Col1 * Col2 AS Expr1, Col3
FROM Table1
) AS D