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

نام تاپیک: به دست آوردن جدیدترین رکورد

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    292

    به دست آوردن جدیدترین رکورد

    سلام
    یک سیستم توزین داریم که محصول در هنگام ورود و خروج وزن می شود. ممکن است محصولی در ورودی یا خروجی اصلاً وزن نشود و همین طور ممکن است
    BarcodeId	DT	InInput	Weight
    110541 2019-11-11 12:31:20.873 0 55.52942
    110516 2019-11-11 14:06:54.540 1 42.0575
    103843 2019-11-11 14:11:43.867 1 42.25
    109608 2019-11-11 14:12:50.023 1 41.87625
    103811 2019-11-11 14:16:51.540 1 42.0625

    (البته من اینجا TOP(5) را کپی کردم)
    اگر وزن مربوط به ورود باشد فیلد InInput=1 است و اگر خروجی باشد InInput=0
    حالا خواسته من این است که به ازای هر آی دی جدیدترین وزن ورودی و خروجی را داشته باشم
    با کد زیر توانستم همه را به هم وصل کنم اما نمی دانم چگونه جدیدترین را برای هر آی به دست آورم
    SELECT A.BarcodeId,A.Weight [Input],B.Weight [Output],A.DT DTi,B.DT DTo
    FROM tblWeighing A,tblWeighing B
    Where A.BarcodeId=B.BarcodeId and A.InInput=1 and B.InInput=0

    حاصل یک چنین چیزی شد
    BarcodeId	Input	Output	DTi	DTo
    114164 24.1625 32.25282 2019-11-23 17:34:14.243 2019-11-23 18:33:06.440
    114672 25.29125 25.26158 2019-11-24 08:13:31.937 2019-11-24 08:50:42.400
    114672 25.29125 25.26158 2019-11-24 08:13:32.407 2019-11-24 08:50:42.400
    114672 25.29125 35.55945 2019-11-24 08:13:31.937 2019-11-24 08:50:42.900
    114672 25.29125 35.55945 2019-11-24 08:13:32.407 2019-11-24 08:50:42.900

    فکر کنم باید با GROUP BY این کار را انجام داد، ولی نتوانستم. بفرمایید چه کار کنم

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    292

    نقل قول: به دست آوردن جدیدترین رکورد

    SELECT AA.BarcodeId,Input,DTi,Output,DTo,(Output-Input)Diff
    FROM(
    SELECT T1.BarcodeId,T1.Weight Input,T1.DT DTi
    FROM tblWeighing T1
    INNER JOIN (
    SELECT BarcodeId,MAX(DT) DT
    FROM tblWeighing
    Where InInput=1
    GROUP BY BarcodeId)T2 ON T1.BarcodeId=T2.BarcodeId and T1.DT=T2.DT
    )AA
    JOIN (
    SELECT T1.BarcodeId,T1.Weight Output,T1.DT DTo
    FROM tblWeighing T1
    INNER JOIN (
    SELECT BarcodeId,MAX(DT) DT
    FROM tblWeighing
    Where InInput=0
    GROUP BY BarcodeId)T2 ON T1.BarcodeId=T2.BarcodeId and T1.DT=T2.DT
    )BB ON AA.BarcodeId=BB.BarcodeId
    ORDER BY DTo DESC,DTi DESC

    این را نوشتم و جواب هم داد ولی نگرانم بهینه نباشد! وقتی تعداد رکوردها زیاد شود دچار مشکل نشوم؟

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

  1. پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1396, 09:01 صبح
  2. پاسخ: 2
    آخرین پست: جمعه 31 مرداد 1393, 10:12 صبح
  3. سوال: ساخت چند یوزر پس برای هاست و محدود کردن هاست برای نویسندگان هاست.
    نوشته شده توسط rezanic در بخش توسعه وب (Web Development)
    پاسخ: 0
    آخرین پست: شنبه 04 مرداد 1393, 21:07 عصر
  4. پاسخ: 7
    آخرین پست: سه شنبه 28 آذر 1391, 13:48 عصر

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

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