نمایش نتایج 1 تا 22 از 22

نام تاپیک: نحوه کوئری کردن آخرین تغییرات

  1. #1

    نحوه کوئری کردن آخرین تغییرات

    سلام و وقت بخیر خدمت دوستان و اساتید.
    جدولی داریم شامل اطلاعات تغییراتی که بر روی یک فیلد ثبت میشه.
    فیلد 1 تغییرات در تاریخ 01/01/1397 و رکوردهای دیگری هم برای همین فیلد در تاریخ های 01/03/1397 و 01/05/1397 ثبت شده
    فیلد 2 تغییرات در تاریخ های 02/01/1397 و رکوردهای دیگری برای همین فیلد در تاریخ های 02/03/1397 و 02/05/1397 ثبت کردیم.
    تمام موارد در جدول ثبت و ذخیره سازی میشه بهمراه ID،
    حالا سوال اینجاست میخوام کوئری بسازم که توی اون هر دو فیلد 1 و 2 رو با مشخصات آخرین تغییراتی که براشون ثبت شده نمایش بده، دستورات پیش ساخته کوئری شامل last و max و... جوابگو نیستن و کاری انجام نمیدن. بانک اطلاعاتی بدلیل حجیم بودنش امکان ارسال نداشت وگرنه برای دوستان ارسال میکردم نظر بدن،
    ضمن اینکه جداول بهم پیوسته ای هم داره که در واقع کوئری شامل فقط یه جدول نیست.

  2. #2

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    یه مساله ای که باید بگم یکی از دوستان راهنمایی کردن که باید از were استفاده کنم ولی تو سرچ هام به نتیجه ای نرسیدم که چطور ازش استفاده کنم.

  3. #3

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    فایل نمونه
    فایل های ضمیمه فایل های ضمیمه

  4. #4

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    شما باید دستوری بنویسی که از رکورد مورد نظر قبل از ویرایش کپی تهیه بشه و در یک تیبل بشینه . بعد ویرایش را انجام بدین و بعد تکست ها قفل شوند .

  5. #5

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    در کل این مساله و مشکل منه و نمیتونم حلش کنم، این دستوری که میگین رو میتونین راهنمایی کنین؟

  6. #6

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    SELECT "1" AS Field_Name , MAX(date1) AS Last_Update FROM table1 WHERE field1="1"
    UNION
    SELECT "2" AS Field_Name , MAX(date1) AS Last_Update FROM table1 WHERE field1="2"

  7. #7

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    نقل قول نوشته شده توسط mosaArabi مشاهده تاپیک
    شما باید دستوری بنویسی که از رکورد مورد نظر قبل از ویرایش کپی تهیه بشه و در یک تیبل بشینه . بعد ویرایش را انجام بدین و بعد تکست ها قفل شوند .
    ایشون یک جور audit trail پیاده کردن و در اینحالت لازم نیست کل رکورد آرشیو بشه - معمولا فقط Id رکورد و old value فیلدهای مورد نظر همراه با Time-stamp نگهداری میشه

  8. #8

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    SELECT "1" AS Field_Name , MAX(date1) AS Last_Update FROM table1 WHERE field1="1"
    UNION
    SELECT "2" AS Field_Name , MAX(date1) AS Last_Update FROM table1 WHERE field1="2"
    کد ها رو نه تو حالت دیزاین مود و نه تو حالت sql view نتونستم وارد کنم (وارد کوئری کنم)

  9. #9
    کاربر دائمی آواتار Mehr@ban
    تاریخ عضویت
    آبان 1389
    محل زندگی
    بچه محله امام رضا
    پست
    422

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    سلام کدی که استاد عزیز برای شما گذاشتن یک نمونه کد هست و شما باید با توجه به جداول خودتون این کد رو شخصی سازی کنید.
    اگر میخواید بیشتر در مورد این نمونه کد بدونید به دنبال کلیدواژه کوئری یونیون بگردید

  10. #10

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    نقل قول نوشته شده توسط Mehr@ban مشاهده تاپیک
    سلام کدی که استاد عزیز برای شما گذاشتن یک نمونه کد هست و شما باید با توجه به جداول خودتون این کد رو شخصی سازی کنید.
    اگر میخواید بیشتر در مورد این نمونه کد بدونید به دنبال کلیدواژه کوئری یونیون بگردید
    ممنونم از راهنمایی، ولی کدی که ارسال کردن با فیلدهای بانک نمونه همخوانی داره، مساله اینجاست که کلا تو شرط های کوئری نمیتونم select بذارم و کلا نمیپذیره، با فرمت in select تو شرط میشه استفاده کرد ولی خب اونوقت نحوه بکارگیری max یا last رو نمیدونم، خیلی سرچ کردم و مطالب زیادی مطالعه کردم ولی این مساله برام حل نشد و انگار تابحال کسی همچین کاری تو اکسس انجام نداده،

  11. #11

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    کدی که گذاشتم دقیقا بر اساس دیتا نمونه است و انتزاعی نیست.
    نمیدونم مشکل شما کجاست برای همین کوئری رو بهش اضافه و دوباره براتون آپلود میکنم.
    1.png
    2.png
    فایل های ضمیمه فایل های ضمیمه

  12. #12

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    ممنونم استاد عزیز، مساله اینجا بود که من کد رو به کوئری اضافه میکردم ولی خب خود کوئری با همین کد اوکی بود، حالا یکم ماهیگیری یاد بگیرم بجای ماهی گرفتن
    من فیلد کد اموال دارم که در واقع شامل صدتا لوازمه که ممکنه کم یا زیاد هم بشه، ممکنه برخی دستگاهها سرویس بشن و برخی دیگه هم نشن،
    مشخصات هر کد اموال تو یه جدول نگهداری میشه و مشخصات تعمیر هر وسیله هم تو یه جدول دیگه، ترجیح من اینه که کوئری داشته باشم که لیست مشخصات رو از جدول 1 بگیره و تو جدول 2 بگرده و آخرین تعمیر اون وسیله رو بیاره،
    ولی چیزی که تو این کوئری میخواستم این بود که بیاد تو همون جدول سرویس ها آخرین تاریخ تعمیر هر وسیله رو بیاره (اینجا یه ایرادی که داره اینه که یه کد اموال ممکنه سالها نیاز به تعمیر و سرویس پیدا نکنه و تو این کوئری نمیاد).
    ممنونم از همه دوستان و اساتیدی که لطف میکنن پاسخ میدن

  13. #13

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    این کد فقط برای همین حالت خاص که در پرسش نخست آمده (چند فیلد معین و محدود) مناسب هست وگرنه در حالت کلی نمیشه اینجوری با Union به نتیجه دلخواه رسید.

    در حالت کلی باید اول یک فانکشن گلوبال (public) بنویسن که اسم جدول و فیلد رو بگیره و آخرین تاریخ آپدیت رو برگردونه.
    بعد با کمک این فانکشن یک کوئری دیگه مینویسین که بازای هر فیلد مشخص آخرین تاریخ آپدیت رو برگردونه.

    دیتا نمونه بسازین و اینجا پیوست کنین تا دقیقتر راهنمایی کنم.

  14. #14

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    last date.zip
    ضمن تشکر ، فایل نمونه با اطلاعات محدودتر که قابل ویرایش و بررسی باشه

  15. #15

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    با تشکر ،
    فایل ضمیمه
    فایل های ضمیمه فایل های ضمیمه

  16. #16

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    نمونه ای که گذاشتین مناسب نیست
    نمونه دیگه ای میسازم و روی همون آموزش میدم

  17. #17

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    جدول کالاها:
    11.png
    12.png

  18. #18

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    جدول تغییرات:

    13.png
    14.png

  19. #19

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    توابع بدست آوردن آخرین تاریخ ویرایش و تعدا دفعات ویرایش یک فیلد معین از رکورد معین:


    Public Function Last_Update(ProductID As Long, FieldName As String) As Variant
    Last_Update = DMax("DateEdited", "ProductsAudit", "ProductID=" & ProductID & " AND FieldName='" & FieldName & "'")
    End Function




    Public Function Count_Of_Updates(ProductID As Long, FieldName As String) As Long
    Count_Of_Updates = DCount("DateEdited", "ProductsAudit", "ProductID=" & ProductID & " AND FieldName='" & FieldName & "'")
    End Function

  20. #20

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    طراحی کوئری:
    SELECT Products.ProductID, Products.Product, 
    Products.DateCreated,
    Last_Update([ProductID],'UnitPrice') AS [آخرین ویرایش (قیمت)],
    Last_Update([ProductID],'Quantity') AS [آخرین ویرایش (مقدار)],
    Last_Update([ProductID],'SupplierID') AS [آخرین ویرایش (تأمین کننده)],
    Count_Of_Updates([ProductID],'UnitPrice') AS [تعداد ویرایش (قیمت)],
    Count_Of_Updates([ProductID],'Quantity') AS [تعداد ویرایش (مقدار)],
    Count_Of_Updates([ProductID],'SupplierID') AS [تعداد ویرایش (تأمین کننده)]
    FROM Products

  21. #21

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    اجرای کوئری:
    ضمیمه 149062

  22. #22

    نقل قول: نحوه کوئری کردن آخرین تغییرات

    فایل دیتابیس
    فایل های ضمیمه فایل های ضمیمه

تاپیک های مشابه

  1. سوال: کوئری نمایش آخرین ردیف در جدول اکسس با #C
    نوشته شده توسط qartallar در بخش C#‎‎
    پاسخ: 4
    آخرین پست: یک شنبه 24 خرداد 1394, 14:54 عصر
  2. اشکال در کوئری نمایش آخرین خرید مشتری
    نوشته شده توسط valentine093 در بخش تحلیل و طراحی بانک اطلاعات
    پاسخ: 3
    آخرین پست: پنج شنبه 17 اردیبهشت 1394, 13:15 عصر
  3. سوال: بروزرسانی کردن اخرین تغییرات روی برنامه روی هاست
    نوشته شده توسط mohsen_1687 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 28 دی 1392, 20:15 عصر
  4. سوال: نحوه کوئری نویسی در vb6 برای کنترل Access؟
    نوشته شده توسط mohammadriano در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 1
    آخرین پست: جمعه 19 خرداد 1391, 10:59 صبح
  5. نحوه کوئری تعریف کردن برای تاریخ خاص با C#‎
    نوشته شده توسط boysilent در بخش C#‎‎
    پاسخ: 1
    آخرین پست: یک شنبه 20 آذر 1390, 15:33 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •