View Full Version : در مورد With res as
reza1357
دوشنبه 07 شهریور 1390, 19:45 عصر
سلام
یک فرمولی مثلا F05 دارم که مالیات رو محاسبه میکنه میخواهم از مقادیر و حاصل فرمول F05 در خود بدنه select و در ستون جدید استفاده کنم :
With res as(
SELECT
F01,
F02,
(F01+F02) as F03
FROM
T)
Select
*
,F03 * 2 as F05
From res
چطوری میتونم از F05 استفاده کنم؟
وآیا میتونم در بدنه With res as یک بدنه دیگه ایجاد و استفاده کنم؟
حمیدرضاصادقیان
سه شنبه 08 شهریور 1390, 08:16 صبح
سلام.
شما از فیلد F05 کجا میخواهید استفاده کنید؟؟
در مورد Nested CTE اینجا (http://www.sqlservernation.com/home/nested-common-table-expressions.html) و اینجا (http://blog.sqlauthority.com/2009/08/08/sql-server-multiple-cte-in-one-select-statement-query/) رو ببینید.
Galawij
سه شنبه 08 شهریور 1390, 09:59 صبح
خوب دوست عزیز، می تونید همین ضربدر 2 را هم ببرید داخل ساختار With.
reza1357
چهارشنبه 09 شهریور 1390, 00:30 صبح
سلام و درود بیکران
دوستانی که نرم افزار حقوق و دستمزد نوشته باشند میدونند فرمول مالیات قدری پیچیده است بنده فرمول رو بصورت دینامیک در اوردم در قسمتی از فرمول مجبورم از کرسور(With res as) استفاده کنم مثلا جمع کسورات، جمع ناخالصی و حتی بعد ها در تعدیل مالیات و یا اضافه حقوق و غیره از این فرمول که بصورت دینامیک است استفاده کنم. فقط تنها مشکلی که دارم این است که نمیتونم مقادیر ستون F05 در بدنه فعلی Select استفاده کنم اگه F05 رو یک Select بالاتر ببرم میتونم مقادیرش استفاده کنم متنها در Select بالاتر فرمول هایی دارم و مجبورم در بالا محاسبه کنم و در Select پایین تر بیارم تا بتونم در F05 استفاده کنم اگه بخواهم از حاصل F05 استفاده کنم باید یک Select دیگه در زیرش ایحاد کنم که شدنی نیست.
اگه متغیر F05 یک فرمول فرض بگیریم و حاصل این فرمول رو بخواهیم در خود بدنه select فعلی و در ستون دیگر ازش استفاده کنم به چه شکل است بنده نتونستم به مقادیر F05 دسترسی پیدا کنم !
با تشکر
AminSobati
یک شنبه 13 شهریور 1390, 09:15 صبح
سلام دوست عزیز،
اینکه شما محاسبه انجام بدین و از حاصل محاسبه مجددا در قسمت SELECT استفاده کنین امکان نداره. مگر اینکه چند subquery تعریف کنین:
;with
q1 as (select c1+c2 as f),
q2 as (select f*c3 as f2),
q3 as (select f2....)
select * from q3
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.