برگزیده های پرشین تولز

معکوس کردن داده های یک فیلد

ahmadpm

کاربر تازه وارد
تاریخ عضویت
18 جولای 2012
نوشته‌ها
23
لایک‌ها
1
سلام خدمت دوستان و اساتید

من یک پایگاه داده sqllite دارم که حاوی فیلدهایی از جمله x, y , z هست. به ازای هر z چندین x و به ازای هر x چندین y هست. یه چیزی تو این مایه ها :

کد:
id   z   x   y
0   1   0   0
1   1   0   1
2   1   0   2
3   1   0   3
4   1   0   4
5   1   1   0
6   1   1   1
7   1   1   2
8   1   1   3
9   1   1   4
10   2   0   0
11   2   0   1
12   2   0   2
13   2   0   3
14   2   0   4
15   2   1   0
16   2   1   1
17   2   1   2
18   2   1   3
19   2   1   4
20   2   2   0
21   2   2   1
22   2   2   2
23   2   2   3
24   2   2   4


من میخوام مقادیر فیلد y معکوس بشن. یعنی الان در هر z تعدادی x از کم به زیاد مقدار دهی شدن و به ازای هر x تعدادی y به همین شکل از کم به زیادمقدار دهی شدن.
من میخوام به ازای هر x مقدار دهی از بالا به پایین بشه. منظورم سورت کردن نیست! دقت کنید x و z ثابت هستند و کاری باهاشون نداریم. یعنی برای مثال داده های بالا به این صورت بشن :

کد:
id   z   x   y
0   1   0   4
1   1   0   3
2   1   0   2
3   1   0   1
4   1   0   0
5   1   1   4
6   1   1   3
7   1   1   2
8   1   1   1
9   1   1   0
10   2   0   4
11   2   0   3
12   2   0   2
13   2   0   1
14   2   0   0
15   2   1   4
16   2   1   3
17   2   1   2
18   2   1   1
19   2   1   0
20   2   2   4
21   2   2   3
22   2   2   2
23   2   2   1
24   2   2   0
 

ayma

کاربر فعال بخش پاتوق
کاربر فعال
تاریخ عضویت
3 دسامبر 2011
نوشته‌ها
1,074
لایک‌ها
3,581
سن
35
با این نوع دیتابیس کار نکردم ، اگر اعداد در محدوده 1 تا 4 هستن ، فکر کنم با Replace کردن بتونین مشکل رو حل کنین مثلا بیاین بگین که ( روش فکر کنین ، شاید کمک کرد )
مثال :
عدد4 در فیلد Y تبدل شود به عدد 9
عدد 0 در فیلد Y تبدیل شود به عدد 8
عدد 9 در فیلد Y تبدیل شود به عدد 0
عدد 8 در فیلد در فیلد Y تبدیل شود به 4
این الگوریتمی که به ذهنم می رسه ، ممکنه روش های ساده تری هم باشه
 

ahmadpm

کاربر تازه وارد
تاریخ عضویت
18 جولای 2012
نوشته‌ها
23
لایک‌ها
1
سلام
خیر، اعداد بزرگ تر هستند. یک الی سه رقمی هستند(در z های مختف).
 

ahmadpm

کاربر تازه وارد
تاریخ عضویت
18 جولای 2012
نوشته‌ها
23
لایک‌ها
1
خودم مشکلم رو حل کردم. گفتم با شما هم به اشتراک بگذارم.
1. دو کپی از جدول ساختم.
1. کپی اول رو بر اساس z و x و y به صورت صعودی مرتبش کردم و به اون یک new_id دادم.
2. کپی دوم رو بر اساس z و x به صورت صعودی و بر اساس y به صورت نزولی مرتب کردم به اون هم یک new_id دادم.
3. مقادیر فیلد y کپی دوم رو در فیلد y کپی اول کپی کردم هر جا new_id هر دو جدول مساوی بود.
- حالا کپی اول مشابه جدول اصلی هست اما فیلد y اون معکوس شده.
 

Klaymen

کاربر تازه وارد
تاریخ عضویت
11 نوامبر 2007
نوشته‌ها
75
لایک‌ها
16
روش جالبی استفاده کردید.
 
بالا