ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tbl
A
test1
test1
test2
test3
test2
test1
test4
test3
test1
راه اول : تعریف Primary Key برای فیلد A در نمای دیزاین ، اگر فایل به accde ( اجرایی) تبدیل شود قادر به تغییرات در نمای دیزاین اشیاء نخواهید بود.
راه دوم : ساخت کوئری و استفاده از عبارت Group by یا Distinct و اجرای کوئری Make Table برای اکسپورت به جدول New
راه سوم : ایجاد رکوردست ، لوپ در فیلد مورد نظر و کپی رکورد [بدون تکرار] در جدول دیگر.
البته کد زیر خالی از اشکال نیست پس سعی کنید اشکالات را برطرف کنید
RsSource : Tbl
RsTarget : tTbl
RsSource=db.OpenRecordSet("Tbl",dbOpenSnapShot")
RsTarget=db.OpenRecordSet("tTbl")
RsSource.MoveFirst
Do
RsTarget.MoveFirst
Do
if (RsSource!A=RsTarget!A) Then
NewValue=RsSource!A
End If
RsTarget.AddNew
RsTarget!A=NewValue
RsTarget.Updats
RsTarget.MoveNext
Unlti RsTarget.EOF=-1
RsSource.MoveNext
Until RsSource.EOF=-1
OrderID | Product | Price |
---|---|---|
10280 | AAA | 280 |
10280 | AAA | 280 |
10280 | AAC | 267 |
10285 | CCC | 350 |
10285 | CCC | 350 |
10285 | CCC | 350 |
10285 | CCA | 348 |
Select distict * from t
OrderID | Product | Price |
---|---|---|
10280 | AAA | 280 |
10280 | AAC | 267 |
10285 | CCC | 350 |
10285 | CCA | 348 |
ID | Last Name | National Code |
---|---|---|
1 | Akbari | 0012020400 |
2 | Akbari | 0012020400 |
3 | Akbari | 0012021400 |
4 | Asghari | 0011021400 |
5 | Asghari | 0012021400 |
6 | Asghari | 0012021400 |
7 | Rajabi | 0032029400 |
8 | Rajabi | 0032029400 |
9 | Rajabi | 0032029400 |
10 | Rajabi | 0032129400 |
Select distinct [Last Name],[National Code] from t1
Or
Select [Last Name],[National Code] from t1 Group By [Last Name],[National Code]
Last Name | National Code |
---|---|
Akbari | 0012020400 |
Akbari | 0012021400 |
Asghari | 0011021400 |
Asghari | 0012021400 |
Rajabi | 0032029400 |
Rajabi | 0032129400 |
در جدول ماقبل بالا چون دو رکورد در فیلد اول و دوم وجود دارد ( Zero Base ) نمی توانید ID را به جدول قبل اضافه کنید مگر با نوشتن سلکت کوئری درون آن
create table CC (ID int not null,Code int not null)
Insert into CC Values(1,123)
ID | Code |
---|---|
1 | 123 |
2 | 123 |
3 | 123 |
4 | 121 |
5 | 122 |
6 | 122 |
7 | 123 |
8 | 124 |
9 | 124 |
10 | 123 |
11 | 125 |
12 | 123 |
Delete From CC Where ID Not In(Select ID From (SELECT distinct Code,(Select ID from CC C where C.id<=CC.ID And C.Code=CC.Code) ID FROM CC order by code Asc))
ID | Code |
---|---|
1 | 123 |
4 | 121 |
5 | 122 |
8 | 124 |
11 | 125 |
برای انتخاب مقادیر یکتا در یک فیلد می تواند استفاده شود و مستقیم در نمای SQL فقط بکار برده می شود.
SELECT DISTINCT can be used in Microsoft Access SQL to select unique values in a field. Note that you cannot use this keyword in Query Design View, you can only use it directly in SQL View.
The outcome of DISTINCT is exactly the same as GROUP BY if you only try to find the unique values, but GROUP BY can be used together with other Aggregate Functions such as COUNT, SUM, AVERAGE. In terms of performance, they should be the same or nearly the same.
ID | Code |
---|---|
1 | 123 |
2 | 123 |
3 | 121 |
4 | 122 |
5 | 123 |
6 | 121 |
7 | 120 |
8 | 124 |
9 | 123 |
10 | 124 |
11 | 121 |
12 | 122 |
13 | 125 |
14 | 122 |
15 | 126 |
16 | 125 |
17 | 126 |
18 | 127 |
19 | 125 |
20 | 128 |
-Delete Query ( SQL View )
ID | Code |
---|---|
1 | 123 |
3 | 121 |
4 | 122 |
7 | 120 |
8 | 124 |
13 | 125 |
15 | 126 |
18 | 127 |
20 | 128 |
-Nested Select ( Count(ID) And Where Clause )
RowNun | ID | Code |
---|---|---|
1 | 1 | 123 |
2 | 3 | 121 |
3 | 4 | 122 |
4 | 7 | 120 |
5 | 8 | 124 |
6 | 13 | 125 |
7 | 15 | 126 |
8 | 18 | 127 |
9 | 20 | 128 |