PDA

View Full Version : سوال: ایجاد شمارنده در کوری



mahmoodfani
سه شنبه 10 اردیبهشت 1392, 21:51 عصر
سلام دوستان عزیز
می خواستم بدونم آیا در برنامه اکسس در قسمت کوری هم می توان یک فیلد شمارنده ایجاد کرد؟
مثلا اگر نتیجه کوری ما 12 ردیف باشد در این فیلد هم از 1 تا 12 نمایش داده شود؟
با تشکر:متفکر:

alirezabahrami
سه شنبه 10 اردیبهشت 1392, 23:11 عصر
سلام دوستان عزیز
می خواستم بدونم آیا در برنامه اکسس در قسمت کوری هم می توان یک فیلد شمارنده ایجاد کرد؟
مثلا اگر نتیجه کوری ما 12 ردیف باشد در این فیلد هم از 1 تا 12 نمایش داده شود؟
با تشکر:متفکر:
سلام
اینجا (http://barnamenevis.org/showthread.php?316098-چگونگی-اضافه-کردن-یک-ستون-تحت-عنوان-ردیف-در-کوئری) را کلیک کن!
موفق باشید

mahmoodfani
چهارشنبه 11 اردیبهشت 1392, 19:13 عصر
دوست عزیز بسیار متشکر
هرچی جستجو کردم نتوانسته بودم در تالار چیزی پیدا کنم
از تایپیک اشاره شده چیز های یاد گرفته
ولی مشکل من این است که در جدولم فیلد id ندارم
در اصل می خواهم ببینم در کوری می توان یک ستون شمارنده ایجاد کرد .
با کمال تشکر از زحمتی که می کشید.

alirezabahrami
پنج شنبه 12 اردیبهشت 1392, 08:18 صبح
دوست عزیز بسیار متشکر
هرچی جستجو کردم نتوانسته بودم در تالار چیزی پیدا کنم
از تایپیک اشاره شده چیز های یاد گرفته
ولی مشکل من این است که در جدولم فیلد id ندارم
در اصل می خواهم ببینم در کوری می توان یک ستون شمارنده ایجاد کرد .
با کمال تشکر از زحمتی که می کشید.


با کد زیر متوانید کوئری با ردیف ایجاد کنید



SELECT (SELECT Count(*) FROM TableName AS tmp WHERE tmp.id <= TableName.id) AS [ردیف], id, FieldName1, FieldName2, ...
FROM TableName
ORDER BY id;

بجای id می توانید از هرفیلد عددی استفاده کنید

سلام
همانطور که درتاپیک فوق جناب امیری هم تذکر داده اند بجای id می توانید از هرفیلد عددی استفاده کنید. بشرطیکه مقدار آن فیلد انتخابی خالی و تکراری(از نوع یکتا باشد) نباشد.
این کد برای فیلدهای با دیتاتایپ text هم جواب میدهد.
نمونه ساده زیر راملاحظه بفرمائید!
موفق باشید

khayyams.votary
پنج شنبه 12 اردیبهشت 1392, 17:46 عصر
دوست عزیز به این مثال دقت کنید ، همون کاری رو میکنه که مد نظر شماست.
خروجی این کد دارای ستونی به اسم rank هست که شماره ردیف رو نمایش میده
select rank() OVER (ORDER BY a.au_lname, a.au_fname) as rank, a.au_lname, a.au_fname
from authors a
order by rank
موفق باشید.

Abbas Amiri
پنج شنبه 12 اردیبهشت 1392, 21:11 عصر
دوست عزیز به این مثال دقت کنید ، همون کاری رو میکنه که مد نظر شماست.
خروجی این کد دارای ستونی به اسم rank هست که شماره ردیف رو نمایش میده
select rank() OVER (ORDER BY a.au_lname, a.au_fname) as rank, a.au_lname, a.au_fname
from authors a
order by rank
موفق باشید.

دوست عزیز متاسفانه Access SQL بعضی از دستورات SQL استاندارد را پشتیبانی نمی کند . یکی از انها Rank()Over است

mahmoodfani
جمعه 13 اردیبهشت 1392, 12:30 عصر
با کمال تشکر از از کلیه دوستانی که زحمت کشیدند و به سئوال من پاسخ دادند در کل نتیجه گرفتم :
1: در کوری اگر فیلد مورد نظر شما یکتا باشد (غیر خالی و غیر تکراری) می توانی برای آن شمارنده بگذاری
2: دستور Rank()Over در اکسس قابل اجرا نیست .(سعی میکنم در sql اجرا کنم )
با کمال تشکر