PDA

View Full Version : پيدا كردن شماره هاي يك سال



Iran58
دوشنبه 21 آذر 1390, 09:33 صبح
سلام
چند سال است كه فاكتور هاي يك فروشگاه (دو رقم شماره فاكتور ها مربوط به همان سال مي باشد ) را در جدولمان ثبت مي كنيم حالا مي خواهيم شماره فاكتور هاي سال مورد نظرم را بدست بياوريم (مثلا كل شماره فاكتور هاي سال89) بايد از چه كدي استفاده كنم

باتشكر

hamid_shrk
دوشنبه 21 آذر 1390, 09:40 صبح
سلام
چند سال است كه فاكتور هاي يك فروشگاه (دو رقم شماره فاكتور ها مربوط به همان سال مي باشد ) را در جدولمان ثبت مي كنيم حالا مي خواهيم شماره فاكتور هاي سال مورد نظرم را بدست بياوريم (مثلا كل شماره فاكتور هاي سال89) بايد از چه كدي استفاده كنم

باتشكر
رقم چندمش سال رو نشون میده؟

Iran58
دوشنبه 21 آذر 1390, 10:55 صبح
رقم چندمش سال رو نشون میده؟
باسلام
دو رقم اول(890001)

یوسف زالی
دوشنبه 21 آذر 1390, 13:43 عصر
سلام.
با استفاده از دستور substring و charindex می تونید یک رشته رو بشکنید.
اگر نوع مورد نظرتون عدد هست خیلی راحت تر هست.
مثلا:
1 = 100000 % 890001
89 = 100000 / 890001
تقسیم صحیح باید انجام شه نه اعشاری.

mobed_6262
دوشنبه 21 آذر 1390, 13:53 عصر
می تونی از تابع left استفاده کنی .
select * from factor where left(string,2)=89
این دستور ستون هایی که دورقم سمت چپ آن ها 89 باشد انتخاب می کند.
string نام ستون

Iran58
سه شنبه 22 آذر 1390, 14:44 عصر
باسلام
وتشكر از جوابهاي شما
مشكل من اين است كه
يك جدول داريم كه فاكتورهايمان را در آن ثبت مي كنيم كه شماره اين فاكتورها 8 رقمي مي باشد كه دو رقم اول آن مربوط به همان سال مي باشد(89002543) وبه تر تيب و پست سرهم ثبت مي شود(اولين شماره سند 89000001،89000002،...،89004562،89004563)كه بعضي از اين شماره فاكتورها در حين كار حذف مي شود
حال مي خواهم چك كنم بيبنم مثلا در سال89 چندتا شماره سند بين كل اسناد 89 ثبت نشده است.
كه يك متغير ورودي داشته باشد كه در آن سال را از كاربر در يافت كرده و عمليات مورد نظر را انجام دهد.
باتشكر

یوسف زالی
سه شنبه 22 آذر 1390, 20:07 عصر
شما در حقیقت کار اصلی رو که پیدا کردن گپ هست نگفتی!
برای پیدا کردن گپ کدهای زیادی وجود داره که حتما با یک سرچ در همین سایت به نتیجه می رسی.
اجالتا اگر فقط تعداد براتون مهمه نه شماره های حذف شده، می تونید از این کد استفاده کنید:

selectMAX(FactorNum) -COUNT(1) as Cnt
from Factors
whereLEFT(FactorNum, 2)= 89

Iran58
شنبه 10 دی 1390, 13:37 عصر
شما در حقیقت کار اصلی رو که پیدا کردن گپ هست نگفتی!
برای پیدا کردن گپ کدهای زیادی وجود داره که حتما با یک سرچ در همین سایت به نتیجه می رسی.
اجالتا اگر فقط تعداد براتون مهمه نه شماره های حذف شده، می تونید از این کد استفاده کنید:

selectMAX(FactorNum) -COUNT(1) as Cnt
from Factors
whereLEFT(FactorNum, 2)= 89
سلام
مهندس شماره ها چگونه مي توانم بدست بياورم؟
باتشكر

یوسف زالی
یک شنبه 11 دی 1390, 09:16 صبح
سلام.
برای پیدا کردن خود سالها هم راههای متفاوتی هست که یکی شون با استفاده از یک جدول هست که فیلدی داره که اعداد در اون هست و تعدادش از اولین ردیف تا آخرین اون موجوده.
مثلا اگر دارید تاریخ های 890101 رو تا 891230 تست می کنید لازمه اون تمام این بازه رو پوشش بده. با استفاده از حلقه می شه اون رو درست کرد.
حالا این دو رو left join می کنیم و اونهایی رو که در جدول ما مقدار null می گیرند در میاریم.
امیدوارم خوب توضیح داده باشم.