PDA

View Full Version : دستور select ترکیبی



rezaei manesh
پنج شنبه 19 خرداد 1384, 12:42 عصر
سلام
من می خوام یه دستور سلکت بنویسم که سلکت اول اطلاعات رو از چند جدول بخونه و در یه دیتاست بریزه و سلکت دوم هم یکسری اطلاعات دیگه رو بخونه و در انتهای این دیتا ست بریزه
که در این بین سلکت اول یه تعداد از فیلد های دیتاست رو پور می کنه و با بقیه کاری نداره و سلکت دوم هم یه تعداد دیگه (بعضی از فیلد ها مشترک هستند)رو پور می کنه
کدی که من استفداه می کنم در زیر اوردم اما خطا می ده

"(Select Assign.Serial as Serial,InfoPer.FName as FName,InfoPer.LName as LName,Duty.NameDuty as NameDuty,Assign.DateAssign as DateAssign,Assign.DateForeseen as DateForeseen,Assign.DescribeAssign as DescribeAssign from infoPer,Assign inner JOIN Duty ON Assign.IdDuty=Duty.IdDuty where Assign.IdName =InfoPer.Id )union (Select EndWorks.Serial as Serial,InfoPer.FName as FName,InfoPer.LName as LName,Duty.NameDuty as NameDuty,EndWorks.DateAssign as DateAssign,EndWorks.DescribeAssign as DateForeseen,EndWorks.DateRceipt as DescribeAssign,EndWorks.TimeLater as TimeLater,EndWorks.DescribeRceipt as DescribeRceipt from infoPer,EndWorks inner JOIN Duty ON EndWorks.IdDuty=Duty.IdDuty
where EndWorks.IdName =InfoPer.Id "
:گیج: :sunglass: :flower:

majid_afra222
پنج شنبه 19 خرداد 1384, 16:44 عصر
سلام
لطفا خطای اعلام شده رو بنویس.
و یه نگاهی هم به نحوه استفاده از دستورات بنداز


UNION Operator
Combines the results of two or more queries into a single result set consisting of all the rows belonging to all queries in the union. This is different from using joins that combine columns from two tables.

Two basic rules for combining the result sets of two queries with UNION are:

The number and the order of the columns must be identical in all queries.


The data types must be compatible

AminSobati
جمعه 20 خرداد 1384, 16:49 عصر
دوست عزیزم شما میفرمایید که Select دوم به انتهای Select اول اضافه میشه، پس یعنی به صورت افقی رکوردها زیاد میشن. اما اینکه دستور اولی بعضی فیلدها رو پر میکنه و دستور دوم بعضی دیگه رو، این به مفهوم انتهای DataSet نمیشه.
ضمنا از تگ Code هنگام پست کردن Query استفاده کنین تا ما بتونیم Query رو بخونیم!

kamyar_kimiyabeigi
شنبه 21 خرداد 1384, 08:31 صبح
سلام احتمالا شما در گذاشتن
Coteation

اشتباه کردین

rezaei manesh
شنبه 21 خرداد 1384, 19:11 عصر
سلام
اشتباهم کجاست؟
منظورم از پر شدن بعضی فیلد ها در هر سلکت هست . رکورد ها به صورت افقی زیاد میشن.
"(Select Assign.Serial as Serial,Assign as DescribeAssign from infoPer,Assign inner JOIN Duty ON Assign.IdDuty=Duty.IdDuty where Assign.IdName =InfoPer.Id )union (Select EndWorks.Serial as Serial,EndWorks.DescribeRceipt as DescribeRceipt from infoPer,EndWorks inner JOIN Duty ON EndWorks.IdDuty=Duty.IdDuty where EndWorks.IdName =InfoPer.Id

اینم پیغام خطاش:
the number of clumns in the tow selected tables or guery do not match
از همه شما متشکرم
:گیج: :flower:

AminSobati
یک شنبه 22 خرداد 1384, 01:08 صبح
پیغام میگه تعداد ستونهایی که در دو Query برمیگرده با هم یکسان نیست..
ولی ای کاش تگ Code رو استفاده میکردین!...

rezaei manesh
دوشنبه 23 خرداد 1384, 19:08 عصر
سلام
مشکلم حل شد
آره تمام فیلد ها رو در هر 2 سلکت انخاب کردم و اونایی رو که نیاز نداشتم رو خالی پر کردم
مشکل حل شد
از توجه شما خیلی متشکرم
:موفق: :flower: :sunglass:

AminSobati
دوشنبه 23 خرداد 1384, 22:54 عصر
موفق باشین :)