با سلام
3 تا جدول دارم طبق عکس
جدول یک هدر تولیده و شامل تاریخ و ماشین رو نگه میداره
جدول دوم کانتنت تولیده و ref داره به جدول اول و نام کالا و دقیقه تولید و تعداد تولید رو نگه میداره
جدول سوم توقفات تولیده و ref داره به جدول دوم و نام توقف و دقیقه توقف رو نگه میداره .
طبق عکس ، واسه تولید کالای یک 60 دقیقه زمان برده و 10 تا تولید شده ، و واسه همون تولید 3 تا توقف اتفاق افتاده.
من میخوام زمان کارکرد مفید رو به دست بیارم . که میشه 60 دقیقه منهای (5+6+10)
ممنون از دوستانی که راهنمایی میکنن
گزارش باید به این صورت باشه :
ماشین - محصول - زمان تولید - تعداد تولید - زمان توقف
خوب دوستان جواب رو میزارم تا دیگران هم استفاده کنن . من از CTE کوئریها بابت این موضوع استفاده کرردم .
with
StopMin as (select sum(ps.[minute]) as TotalMinStop,ps.ref_productContent from productStop ps group by ps.ref_productContent )
,
Tolid as (select
ph.MashinName,sum(pc.quantity) as TotalQuantity ,pc.goodName, sum(pc.[Minute]) as TotalMinQ,pc.id
from ProductHeader ph
left join productContent pc on ph.id=pc.ref_productHeader
group by ph.MashinName,pc.goodName,pc.id)
select tolid.MashinName'نام ماشین',tolid.goodName'نام کالا',ifnull(sum(tolid.TotalMinQ),0) as 'کل زمان تولید',
ifnull(sum(stopmin.TotalMinStop),0) 'زمان توقف',ifnull(sum(tolid.TotalQuantity),0)'کل میزان تولید',
ifnull(sum(ifnull(tolid.TotalMinQ-StopMin.TotalMinStop,TotalMinQ)),0) as 'خالص زمان تولید'
from StopMin right join Tolid on StopMin.ref_productContent=Tolid.id
group by tolid.MashinName,tolid.goodName
خوب دوستان جواب رو میزارم تا دیگران هم استفاده کنن . من از CTE کوئریها بابت این موضوع استفاده کرردم .
with
StopMin as (select sum(ps.[minute]) as TotalMinStop,ps.ref_productContent from productStop ps group by ps.ref_productContent )
,
Tolid as (select
ph.MashinName,sum(pc.quantity) as TotalQuantity ,pc.goodName, sum(pc.[Minute]) as TotalMinQ,pc.id
from ProductHeader ph
left join productContent pc on ph.id=pc.ref_productHeader
group by ph.MashinName,pc.goodName,pc.id)
select tolid.MashinName'نام ماشین',tolid.goodName'نام کالا',ifnull(sum(tolid.TotalMinQ),0) as 'کل زمان تولید',
ifnull(sum(stopmin.TotalMinStop),0) 'زمان توقف',ifnull(sum(tolid.TotalQuantity),0)'کل میزان تولید',
ifnull(sum(ifnull(tolid.TotalMinQ-StopMin.TotalMinStop,TotalMinQ)),0) as 'خالص زمان تولید'
from StopMin right join Tolid on StopMin.ref_productContent=Tolid.id
group by tolid.MashinName,tolid.goodName
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟