PDA

View Full Version : چطور کویری بزنیم از دو تا view



neynavaz
شنبه 10 دی 1390, 10:01 صبح
سلام
من دوتا view دارم که میخوام از یک ویو سطرهایی رو انتخاب کنم (اسنادی رو سلکت کنم) که در ویو دوم وجود نداشته باشند
یعنی تو ویو اول دوتا فیلد شماره سند و کد انبار دارم که در صورتی باید انتخاب شوند که این شماره سند و کد انبار در هیچ سطری از سطرهای ویو دوم موجود نباشد

ببخشید که سوالم سادست

یوسف زالی
شنبه 10 دی 1390, 10:34 صبح
سلام.
چند تا راه دارید که یکی از اونها استفاده از Except هست.
select A, B from View1
excepts
select A, B from View2

البته این روش مشمول قوانین تعداد و نوع یکسان مثل Union می شود.
اگر جواب مورد نظر رو نتونستید بگیرید بگید تا روشهای دیگه رو بگم.

neynavaz
شنبه 10 دی 1390, 10:42 صبح
مرسی با این حل شد

SELECT * FROM excel_temp_pur a
WHERE NOT EXISTS( SELECT *
FROM excel_118 b WHERE a.projid = b.projid)

یوسف زالی
شنبه 10 دی 1390, 10:48 صبح
سلام.
در حقیقت روش دوم من هم همین بود!
اما به جای exists(select * from... بهتره بگذارید:
exists(select top 1 1 from...

خیلی سریع تر می شه و همون نتیجه رو داره.

neynavaz
شنبه 10 دی 1390, 11:01 صبح
سلام
s(select top 1 1 from
منظورتون top 1 هست یا همون top 11
?

یوسف زالی
شنبه 10 دی 1390, 11:22 صبح
دو تا یک داره جدا از هم.
یعنی اولین یک رو سلکت کن.
به جای داده یا فیلد 1 رو میاره که نیازی به ارجاع به لیست فیلدها نداشته باشه.
به عنوان قانون کلی select 1 from TBL به تعداد فیلدهای جدولتون 1 میاره و top 1 اون هم برای ردیف اول جدول 1 میاره.