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

نام تاپیک: دستور select در mysql

  1. #1

    دستور select در mysql

    سلام
    یه سوال فنی داشتم
    من یه دیتا بیس دارم که توش توی تاریخ های متفاوت تعدادی مواد ثبت شده مثلا دیروز ماده الف با قمت مثلا 1 امروز همون ماده الف با قیمت مثلا 2 ثبت شده
    حالا فرض کنید توی این تیبل 10 تا ماده وجود داره با مشخصات بالا توی بازه زمانی مثلا 1سال
    یعنی 10 تا ماده داریم که توی تاریخ های مختلف قیمت بعضی هاشون تغییر کرده
    حالا از ترکیب این مواد یه محصول به دست اومده
    با چه دستوری میتونم بگم مثلا جمع قیمت این مواد به نرخ تاریخی که میدم چقدر میشه
    یعنی در درجه اول باید همه مواد رو مشخص کنم با آخرین نرخ مثلا امروز و این در حالیه که ممکنه یک ماده اصلا قیمتش توی این 1سال تغییر نکرده باشه و 1ماره تا دیروز یه قیمت بوده ولی امروز قیمتش عوض شده پس باید قیمت امروز رو برای محاسبه حساب کنم و توی محاصبه از تکرار هم جلو گیری بشه؟
    کد من اینه ولی اشکال کار اینجاست که وقتی بخوام قیمت مثلا هفته گذشته رو حساب کنم میاد قیمت مواد رو توی روزهای آینده هم محاسبه میکنه یعنی مثلا نمک رو 100 بارم بعد تاریخ امروز ثبت کرده باشم توی لیست میاره








    SELECT * FROM `price_of_product_containers`
    where date_of_manufacture in (select max(date_of_manufacture)
    from price_of_product_containers group by packagetype ) and packagetype not in
    (SELECT packagetype FROM `price_of_product_containers`
    where date_of_manufacture ='1396/07/05')




    union




    SELECT * FROM `price_of_product_containers`
    where date_of_manufacture ='1396/07/05'







    همونطور که توی عکس میبینید نمک 2 بار تکرار شده در حالی که باید یک بار نمایشش بده و قیمت مواد رو فقط تا پنجم نمایش بده
    یعنی آخرین قیمت مواد تا پنجم ماه مثلا

  2. #2

    نقل قول: دستور select در mysql

    توی این حالت هم باز به مشکل میخوره و باز آخرین تاریخی که یه ماده رو با قیمت جدید ثبت کردم نمیاره




    SELECT DISTINCT * FROM `tbl_ingredientprices` WHERE date<='1396/11/08' GROUP BY materialname ORDER BY materialname



  3. #3

    نقل قول: دستور select در mysql

    در بخش mysql بپرسید.

  4. #4

    نقل قول: دستور select در mysql

    ممنون مشکل حل شد



    SELECT DISTINCT
    max( date ) AS date,
    materialname,
    measurementunit,
    price,
    moneytype
    FROM
    `tbl_ingredientprices`
    WHERE
    date <= '1396/10/08'
    GROUP BY
    materialname


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

  1. طریقه استفاده از متغییر عددی در دستور select در قسمت where
    نوشته شده توسط mc_laren در بخش برنامه نویسی در 6 VB
    پاسخ: 9
    آخرین پست: شنبه 09 شهریور 1387, 16:29 عصر
  2. تغییر دستور select در BindingSource
    نوشته شده توسط masoodp666 در بخش VB.NET
    پاسخ: 5
    آخرین پست: شنبه 17 فروردین 1387, 21:36 عصر
  3. عوض کردن دستور select در گزارش در زمان اجرا
    نوشته شده توسط amir_pro در بخش C#‎‎
    پاسخ: 6
    آخرین پست: یک شنبه 14 بهمن 1386, 10:40 صبح
  4. نمایش دوفیلد انتخابی دستور select در یک فیلد
    نوشته شده توسط مهدی رحیم زاده در بخش C#‎‎
    پاسخ: 5
    آخرین پست: جمعه 11 خرداد 1386, 20:49 عصر
  5. دستور select در dataset
    نوشته شده توسط MOHAMAD4197 در بخش ابزارهای گزارش سازی
    پاسخ: 4
    آخرین پست: پنج شنبه 26 بهمن 1385, 12:26 عصر

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

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