PDA

View Full Version : گرفتن سلکت از سلکت دیگر (سلکت تودرتو)



modern_amin
سه شنبه 06 تیر 1391, 11:32 صبح
با سلام
من تو یک سلکت یکسری نتایج رو بدست میارم و بعد میخام تو این سلکت یکسری اطلاعات محاسباتی تر رو در بیارم ، در واقع یک سلکت تو در تو......
چیکار کنم؟؟؟؟

Negin.cs
سه شنبه 06 تیر 1391, 11:41 صبح
سلام

فکرکنم با Having بشه:

http://msdn.microsoft.com/en-us/library/ms180199.aspx

حمیدرضاصادقیان
سه شنبه 06 تیر 1391, 13:30 عصر
سلام.
صورت مسئله شما خیلی کلیه. یک نمونه مثال بذارید با داده های تستی و کدی که خودتون نوشتید تا بشه براش کدی نوشت یا کد شما رو اصلاح کرد.

modern_amin
سه شنبه 06 تیر 1391, 15:40 عصر
زیاد هم کلی نبوداااااااا

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

حالا این طرز نوشتن اشتباهه ولی تو این مایه ها میخام
SELECT * FROM (SELECT * FROM Table1)

حمیدرضاصادقیان
سه شنبه 06 تیر 1391, 15:57 عصر
سلام.
این طرز نوشتن شما اشتباه نیست و کاملا درسته.
شما میتوانید در داخل Select دوم نتیجه مورد نظر رو کسب کنید و در قسمت اول ازش استفاده کنید و دوباره روی اون شرط بذارید.
SELECT * FROM (SELECT SUM(Field1) AS SumField,Field2 FROM Table1 WHERE Field1=100
GROUP BY Field2) AS Fs
WHERE Fs.Field1>1500



همچنین اگر از نسخه 2008 استفاده میکنید یک راه دیگه استفاده از CTE هست.
یک راه دیگه استفاده از Derived Table هست.
یک راه دیگه استفاده از Having هست.

برای جا افتادن مطلب پیشنهاد میکنم راههای بعدی رو خودتون سعی کنید پیاده سازی کنید.

modern_amin
سه شنبه 06 تیر 1391, 16:12 عصر
دوست عزیز واقعا ممنون

این کوئری ساده زیر کار رو راه میندازه

WITH MyBigProducts AS (SELECT * FROM Products WHERE Size='Big')
SELECT Name FROM MyBigProducts