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

نام تاپیک: دستور sql براي پرس وجوي ساعت كار در بازه تاريخ

  1. #1

    دستور sql براي پرس وجوي ساعت كار در بازه تاريخ

    سلام عزيزان.
    من 2 تا جدول دارم. يكي2 ستون تاريخ وساعت از نوع datetime2داره به نامهاي start و end كه ساعت و تاريخ شروع كار و پايان كار دستگاه رو در هر روز شامل ميشه.
    جدول دوم هم دو ستون از نوع datetime2داره به نامهاي changetime كه زمان(تاريخ و ساعت) تعويض قطعه اي از دستگاه و ستون nextchange زمان(تاريخ و ساعت) تعويض بعدي آن قطعه را مشخص ميكنه.
    من مدت زمان كاركرد قطعه را روي دستگاه (به دقيقه) در بازه زماني دو تاريخ changetime و nextchange ميخاهم كه از روي جدول اول محاسبه ميشه.

    جدول UnitTime
    start end
    2017/02/16 01:00:00 ب.ظ 2017/02/16 04:00:00 ب.ظ
    2017/02/18 08:00:00 ق.ظ 2017/02/18 04:00:00 ب.ظ
    2017/02/19 11:00:00ق.ظ 2017/02/19 04:00:00 ب.ظ
    جدول ‍Change
    UnitNo changetime nextchange Min
    1 2017/02/15 07:00:00 ق.ظ 2017/02/18 03:00:00 ب.ظ 600
    1 2017/02/18 03:00:00 ب.ظ 2017/02/19 01:00:00 ب.ظ 180
    2 2017/02/18 11:00:00 ق.ظ 2017/02/22 01:00:00 ب.ظ 600
    2 2017/02/22 01:00:00 ب.ظ

    قطعه شماره 1 ساعت 7روز 2017/02/15 تعويض شده كه همان روز دستگاه خاموش بوده ولي در 2017/02/16 01:00:00 ب.ظ تا 2017/02/16 04:00:00 ب.ظ(180دقيقه)و2017/02/17 نيز دستگاه خاموش بوده و در 2017/02/18 08:00:00 ق.ظ
    تا 2017/02/18 04:00:00 ب.ظ دستگاه روشن بوده كه در 2017/02/18 03:00:00 ب.ظ قطعه عوض شده(7 ساعت=420دقيقه) كه روي هم (180+420) 600 دقيقه قطعه كار كرده.
    ممنون ميشم اگه دوستان كمكم كنيدو دستو select رو برام پيدا كنيد.

  2. #2
    کاربر دائمی آواتار En_MK
    تاریخ عضویت
    آبان 1388
    محل زندگی
    تهران
    پست
    288

    نقل قول: دستور sql براي پرس وجوي ساعت كار در بازه تاريخ

    سلام
    شما باید UnitNo را در جدول UnitTime به عنوان کلید خارجی داشته باشید
    اونوقت با یه join ساده میتونید کاری که مدنظرتون هست را انجام بدید
    الان هم میشه ولی به نظرم بااین تغییر جدولهاتون نرمال ترند

    شما میتونی یه Cursor تعریف کنید به ازای هررکورد Change اجرا بشه و دو مقدار تاریخ وساعت این جدول را داخل پارامترهای Corsur بریزید
    بعد تفریق این دومقدار و مقادیر ستون جدول UnitTime که بین بازه changetime وnextchange هستند را محاسبه کنید

  3. #3

    نقل قول: دستور sql براي پرس وجوي ساعت كار در بازه تاريخ

    سلام
    ممنون از توجه شما.در جدول اصلي براي هرجدول ستوني به نام serial از نوع identity در نظر گرفتم و فكر كنم كليد خارجي در اين پرسجو به كارم نياد چون تاريخ وزمان در 4 ستون بالا از نظر ترتيب ,قاعده خاصي ندارند.

    مثلا در سطر اول
    changetime يك روز قبل از اولين start بوده و nextchange آن بين start و end .

    ممكن بود
    nextchange بعد از چند start و end اتفاق بيافتد يا حتي changetime هم ممكن است قبل يا بين يا بعد از start و end در يك روز اتفاق بيافتد.

    برام زمان دقيق كار كرد قطعه روي دستگاه مهمه نه مدت زمان ماندن قطعه روي دستگاه. بازم با سپاسگذاري از شما منتظر راهنمايي شما هستم.ممنون.

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

  1. مشکل در دستور sql برای نمایش پستهای مربوط به هر دسته
    نوشته شده توسط markarian در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: جمعه 16 تیر 1391, 09:51 صبح
  2. سوال: معادل شرط If در Sql براي پرس و جو
    نوشته شده توسط ARData در بخش Access
    پاسخ: 1
    آخرین پست: سه شنبه 04 آبان 1389, 10:13 صبح
  3. دستور sql براي تغيير در نتايج بازگشتي از يك جدول
    نوشته شده توسط m_vb1386 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: شنبه 18 آبان 1387, 12:52 عصر
  4. راهنمایی در دستور sql برای join سه جدول
    نوشته شده توسط alirzn در بخش SQL Server
    پاسخ: 1
    آخرین پست: سه شنبه 03 اردیبهشت 1387, 21:30 عصر
  5. دستور SQL برای جستجو در جداول مرتبط
    نوشته شده توسط FatemehB در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 7
    آخرین پست: شنبه 04 مهر 1383, 11:17 صبح

برچسب های این تاپیک

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

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