شماره گذاری مجدد
با سلام و عرض خسته نباشید خدمت اساتید محترم
من یه جدولی به نام Receiptform که دارای سه ستون به نام های stockid , receiptid , date (تاریخ و شماره رسید و کد انبار) میباشد حال من میخواهم شماره رسیدهایم طبق هر انبار بر حسب تاریخ مرتب کرده (صعودی) و شماره رسید هایم را دوباره از شماره 1 شماره گذاری نمایم.
اگه میشه دستور این عملیات رو بهم بگین
5 پاسخ
خب دستور row_number رو به صورت زیر بنویسید
row_number() over ( partition by stockid order by date) as R
دست شما درد نکنه ولی تو این دستور رسیدهای تمام انبار ها شماره گذاری شدند که بدون در نظر گرفتن انبار بود ولی من میخوام رسید های هر انبار از شماره 1 آغاز بشن یعنی رسیدهای انبار شماره 2 از 1 آغاز بشه تا شماره 4 و انبار شماره 7 از 1 آغاز بشه تا ...
نه شماره رسید ها کلید خارجی نیستند
در این صورت می تونید از کد زیر استفاده کنید.
update Receiptform
set Receiptform.receiptid=tt.R
from
(select stockid , receiptid , date ,row_number() over(order by date) as R
from Receiptform) as tt
where tt.stockid=Receiptform.stockid and tt.date=Receiptform.date
سلام به شما دوست عزیز.
اگر شماره رسید ها به عنوان کلید خارجی قرار داده شده باشند آنها را نمی توان تغییر داد مگر این که از جدول اصلی آنها را تغییر بدهی.