PDA

View Full Version : مشكل در نوشتن كوئري



happy65_sh
دوشنبه 25 آبان 1388, 11:27 صبح
سلام
دوستاي عزيز براي نوشتن كوئري به شكل زير بايد چيكار كنم؟؟

(selectCommand)-(selectCommand)
در ضمن هردوي selectCommand ها ممكنه يك مقدار را برگردانند ممكنه چند مقدار.

مهدی نان شکری
دوشنبه 25 آبان 1388, 11:41 صبح
با سلام
از except استفاده کنید. این برای دو مجموعه عمل - را انجام می دهد.

happy65_sh
سه شنبه 26 آبان 1388, 08:00 صبح
با تشكر از دوست عزيز NanShekari
در مورد جمعشون چي؟

(selectCommand)+(selectCommand)

مهدی نان شکری
سه شنبه 26 آبان 1388, 08:30 صبح
با سلام
Union و Union All
اولی در نتیجه اعضای تکراری رو حذف می کنه.

happy65_sh
سه شنبه 26 آبان 1388, 11:10 صبح
سلام و تشكر از توجهتون
احتمالا منظورم را بد رسوندم.فرض كنيد كه يك selectCommand مقدار 10 و ديگري مقدار 20 را برمي گرداند در نتيجه من مي خواهم كوئري نهايي جمع اين دو يعني 30 را برگرداند:

(selectCommand1)+(selectCommand2)=30

مهدی نان شکری
سه شنبه 26 آبان 1388, 11:30 صبح
با سلام
نتیجه یک Select در SQL مجموعه هست و برای مجموعه - تعریف شده نیست

Reza.ariyan
سه شنبه 26 آبان 1388, 12:06 عصر
selectCommand هارو خوب بزار (نمیدزدیم کدتو):چشمک:
اگه خروجی selectCommand ها عدد باشه میشه اینکار رو انجام داد ، در غیر اینصورت نمیشه
مثلا این میشه
SELECT MAX(Prices) From Table1 + SELECT SUM(Count) From Table1
ولی پایینی نیمشه
SELECT Prices From Table1 + SELECT Count From Table1

happy65_sh
سه شنبه 26 آبان 1388, 12:07 عصر
NanShekari (http://barnamenevis.org/forum/member.php?u=16657) عزيز

نتیجه یک Select در SQL مجموعه هست
منظورتون چيه؟

برای مجموعه - تعریف شده نیست
آيا منظورتون از - علامت + بود؟
اما مطمئنا راه حلي وجود داره غير از اينه؟!:متفکر:
جناب Reza.ariyan (http://barnamenevis.org/forum/member.php?u=58001)

selectCommand هارو خوب بزار (نمیدزدیم کدتو):چشمک:
آدم بايد همه چيزو در نظر بگيره!:شیطان:
جداي از شوخي به قدري كوئري كه نوشته ام طولاني هست كه امكان نداره كلش را اينجا كپي كنم اما كوچيك شده اش را مي ذارم يه نگاهي بياندازيد ممنون ميشم:

select isnull(sum(mony),0)/12 from items whre items.id<>8 and vahed='h'
و

select isnull(sum(mony),0) from items whre items.id<>5
فكر كنم بر اساس تاپيكي كه شما زدين بشه اين دو تا را جمع كرد.درسته؟؟

مهدی نان شکری
سه شنبه 26 آبان 1388, 12:13 عصر
منظورتون چيه؟

آيا منظورتون از - علامت + بود؟
اما مطمئنا راه حلي وجود داره غير از اينه؟!:متفکر:
ببینید SQL با نظریه مجموعه ها کار می کنه و خروجی Select یک مجموعه است.
و برای مجموعه اجتماع ، اشتراک و ... کاربرد دارد.
چیزی رو که مد نظر شماست در نظریه اعداد صادق هست.

مهدی نان شکری
سه شنبه 26 آبان 1388, 12:16 عصر
selectCommand هارو خوب بزار (نمیدزدیم کدتو):چشمک:
اگه خروجی selectCommand ها عدد باشه میشه اینکار رو انجام داد ، در غیر اینصورت نمیشه
مثلا این میشه
SELECT MAX(Prices) From Table1 + SELECT SUM(Count) From Table1
ولی پایینی نیمشه
SELECT Prices From Table1 + SELECT Count From Table1
با سلام
دوست خوبم این خطا خواهد داد.
کد رو باید به شکل زیر بنویسید



SELECT MAX(Prices) + SUM(Count) From Table1

Ebrahim Asadi
سه شنبه 26 آبان 1388, 16:29 عصر
DECLARE @VALUE1 FLOAT
DECLARE @VALUE2 FLOAT

SELECT
@VALUE1 = ISNULL(SUM(mony),0)/12
FROM
items
WHERE
items.id <> 8
and vahed='h'

SELECT
@VALUE2 = isnull(sum(mony),0)
FROM
items
WHERE
items.id<>5

SELECT @VALUE1 + @VALUE2 AS SUM1

Reza.ariyan
سه شنبه 26 آبان 1388, 17:20 عصر
با سلام
دوست خوبم این خطا خواهد داد.
کد رو باید به شکل زیر بنویسید



SELECT MAX(Prices) + SUM(Count) From Table1


پسرم من اینهارو میدونم که میگم
به عکس زیر یه کوچولو نگاه کن

مهدی نان شکری
سه شنبه 26 آبان 1388, 19:25 عصر
سلام
دوست من این جواب می ده برای این که به جهت انتصاب به متغییر، اول به نوع Int تبدیل می شه.
ولی Query


SELECT count(ID) FROM Table_1 + SELECT count(ID) FROM Table_1

که در پست قبل نوشته بودید جواب نخواهد داد.


select (SELECT count(ID) FROM Table_1) + (SELECT count(ID) FROM Table_1)

هم عمل تبدیل را انجام خواهد داد

Reza.ariyan
سه شنبه 26 آبان 1388, 19:38 عصر
selectCommand هارو خوب بزار (نمیدزدیم کدتو):چشمک:
اگه خروجی selectCommand ها عدد باشه میشه اینکار رو انجام داد ، در غیر اینصورت نمیشه
مثلا این میشه
SELECT MAX(Prices) From Table1 + SELECT SUM(Count) From Table1
ولی پایینی نیمشه
SELECT Prices From Table1 + SELECT Count From Table1

این پست قبلی منه ...
جواب این رو باید تو یه متغییر int میریختم که میتونستم Print کنم
SELECT MAX(Prices) From Table1 + SELECT SUM(Count) From Table1
جوابش رو تو یه متغییر به اسم Result ریختم که Print کنم

بنا بر این جمع به شکل اولی میشه ولی دومی نمیشه

happy65_sh
چهارشنبه 27 آبان 1388, 07:46 صبح
ممنون از همه دوستان وپاسخ هاتون
مشكلم حل شد:تشویق: