PDA

View Full Version : تعداد رکورد های حاصل از کسر دو مجموعه



mehran_sh_t
پنج شنبه 18 خرداد 1391, 16:16 عصر
سلام
من می خوام کدی مثل زیر بنویسم. ولی با این روش ارور میده! چطور بنویسم که جواب بده؟

SELECT COUNT(
(SELECT ID FROM IDs EXCEPT
(SELECT ID FROM RankedIDs WHERE Score = 0)))

Felony
پنج شنبه 18 خرداد 1391, 18:07 عصر
DECLARE @TempTable TABLE(ID int)

INSERT INTO @TempTable (ID)
SELECT ID FROM Text EXCEPT (SELECT ID FROM Word )

SELECT Count(*) FROM @TempTable

mehdi.mousavi
پنج شنبه 18 خرداد 1391, 21:39 عصر
سلام من می خوام کدی مثل زیر بنویسم. ولی با این روش ارور میده! چطور بنویسم که جواب بده؟

SELECT COUNT(
(SELECT ID FROM IDs EXCEPT
(SELECT ID FROM RankedIDs WHERE Score = 0)))

سلام.
بدین شکل عمل کنید:

SELECT COUNT(*) FROM
(
SELECT ID FROM IDs
EXCEPT
SELECT ID FROM RankedIDs WHERE Score = 0
) r

موفق باشید.

mehran_sh_t
پنج شنبه 18 خرداد 1391, 23:03 عصر
آقای موسوی نقش r در این کد چیه؟ فکر کردم اشتباه تایپیه!!!!

mehdi.mousavi
پنج شنبه 18 خرداد 1391, 23:55 عصر
آقای موسوی نقش r در این کد چیه؟ فکر کردم اشتباه تایپیه!!!!

سلام.
خیر، اشتباه تایپی نیست :) به اون میگن Alias، اسمی هستش که به inner query دادم... درسته که در Outer Query ازش استفاده نکرده ام، اما در صورت نیاز میتونم با r، به فیلدهای inner query برسم. SQL ای که نوشته بودم رو میشه با CTE ها بدین شکل نیز نوشت:

;WITH cte AS (
SELECT ID FROM IDs
EXCEPT
SELECT ID FROM RankedIDs WHERE Score = 0
)
SELECT COUNT(*) FROM cte

موفق باشید.

mehran_sh_t
جمعه 19 خرداد 1391, 02:06 صبح
با Alias آشنام.
ولی جالبیش اینه تا وقتی که من r رو نذاشته بودم، ارور میداد!!