PDA

View Full Version : انتخاب ستونهای خاص از چند جدول اکسس



Mrs.Net
جمعه 13 مرداد 1385, 16:38 عصر
سلام به اساتید برنامه نویس
من با سی شارپ برنامه نویسی میکنم. 3تا جدول دارم که همگی یک فیلد ID دارند. میخوام از این 3 جدول یگ گزارش تهیه کنم. برای همین لازم هست که از هرجدول بعضی ستونها انتخاب بشوند. و این انتخاب برای رکوردهایی انجام میشه که فیلد id اونها برابر یک مقدار خاص باشه.
چجوری میتونم این انتخاب رو برقرار کنم و یک جدول جدید از آنچه میخوام درست کنم؟

ghafoori
جمعه 13 مرداد 1385, 20:06 عصر
دوست عزیز ببینید مثلا اگر بخواهیم از بانک northwind از جدول Employees فیلد LastName
از جدول EmployeeTerritories فیلد EmployeeID از جدول Orders فیلد OrderDate را انتخاب کنم که همه دارای EmployeeID یکسان و خاص مثلا 3 باشد باید یک همچین کدی استفاده کنم



SELECT dbo.Employees.LastName, dbo.EmployeeTerritories.EmployeeID, dbo.Orders.OrderDate
FROM dbo.Employees INNER JOIN
dbo.EmployeeTerritories ON dbo.Employees.EmployeeID = dbo.EmployeeTerritories.EmployeeID INNER JOIN
dbo.Orders ON dbo.Employees.EmployeeID = dbo.Orders.EmployeeID
WHERE (dbo.Employees.EmployeeID = 3)
برای راحتی کار شما با پنجره server explorer بانک خو را باز کنید و حالا ایجاد view جدید را بیارید لازم نیست view بسازید جدولها را انتخاب کنید و فیلدها را بردارید شرط را اضافه کنید و کد را کپی کنید من هم همین کار را کردم کد بالا از این راه بدست امده راحت و بدون اشتباه

Mrs.Net
جمعه 13 مرداد 1385, 21:23 عصر
ممنون ولی نتونستم استفاده کنم.
لطفا کامل بگید که چجوری به این کد برسم؟
درضمن من از vc2005 استفاده میکنم و از پنجره DataSource اگه میشه توضیح بدهید

ghafoori
شنبه 14 مرداد 1385, 11:51 صبح
از پنجره DataSource نه شما باید از پنجره server explorer باید این کارها را انجام بدید داخل خود اکسس هم میشود شما اکسس 2003 را باز کنید در قسمت query با زدن query جدید و با انتخاب جدولها می تونید چیزی که میخواهید را انجام دهید حالا با راست کلیک روی پنجره query و انتخاب sql view کد sql ان نمایش داده میشود شما می توانید به ان شرط اضافه کرده و داخل برنامه خود استفاده کنید
ببینید یک همچین کدی

SELECT Table1.id, Table2.customer, Table1.name
FROM Table1, Table2;


ان کدهای قبلی برای sqlserver بود و خیلی سخت مال اکسس بسیار راحته با یکمی دقت شما هم می تونید این کد را بنویسید فقد کافی است بعد از SELECT نام فیلد همراه با نام جدول اورده شود و بعد از from هم نام جدولهایی که استفاده میکنید بعد از ان هم شرط

Mrs.Net
سه شنبه 17 مرداد 1385, 00:02 صبح
اگه من بیشتر از 2تا جدول داشته باشم و بخوام همه اونهارو با یک relation به هم ربط بدم درست کار نمیکنه؟!
یعنی یک ریلیشن درست کنم و به یک دیتا ست بدم و مثلا یک دیتا گرید رو با اون دیتا ست پر کنم ولی درست کار نمیکنه و هر رکورد چند بار تکرار میکنه!

ghafoori
سه شنبه 17 مرداد 1385, 20:28 عصر
شما ارتباط را میخواهید در اکسس ایجاد کنید یا در dataset

Mrs.Net
چهارشنبه 18 مرداد 1385, 10:44 صبح
در دیتا ست
به هر حال میخوام در محیط vc#.net انجام بدم

ghafoori
چهارشنبه 18 مرداد 1385, 17:04 عصر
من هرکاری کردم داخل دیتاست نتونستم بیشتر از 2 جدول را به هم ربط بدم برای همین با دستورات sql این کار را انجام میدم مثلا یک همچین کدی به اخر عبارت یک شرط اضافه کردم تا تمام idها که کلید هستند مساوی باشند



SELECT Table1.id, Table2.customer, Table1.name, Table3.aad
FROM Table1, Table2, Table3
WHERE Table1.id= Table2.id= Table3.id;

once4ever
چهارشنبه 18 مرداد 1385, 18:39 عصر
از این کد میتونی استفاده کنی:

SELECT Table1.a, Table1.b, Table1.c, Table1.d, Table2.a AS Expr1, Table2.b AS Expr2, Table3.a AS Expr3, Table3.b AS Expr4
FROM ((Table1 INNER JOIN
Table2 ON Table1.c = Table2.c ) INNER JOIN
Table3 ON Table1.c = Table3.c )