Good morning,
I am setting up a relatively simple BAQ. I want to see:
- All the open sales order releases
- All the open jobs linked to releases
- All the open jobs not linked to releases
I got the first two working in this BAQ. However, I want to find a way to add that last part to see if there are jobs out there that are make to stock, or otherwise not linked to a sales order. Here is the simple BAQ I have:
/*
* Disclaimer!!!
* This is not a real query being executed, but a simplified version for general vision.
* Executing it with any other tool may produce a different result.
*/
select
[Orders].[OrderDtl_PartNum] as [OrderDtl_PartNum],
[Orders].[OrderRel_OrderNum] as [OrderRel_OrderNum],
[Orders].[OrderRel_OrderLine] as [OrderRel_OrderLine],
[Orders].[OrderRel_OrderRelNum] as [OrderRel_OrderRelNum],
[Orders].[OrderRel_ReqDate] as [OrderRel_ReqDate],
[Orders].[OrderRel_OurReqQty] as [OrderRel_OurReqQty],
[Orders].[Calculated_Shipped] as [Calculated_Shipped],
[Jobs].[JobHead_JobNum] as [JobHead_JobNum],
[Jobs].[JobHead_PartNum] as [JobHead_PartNum],
[Jobs].[JobHead_StartDate] as [JobHead_StartDate],
[Jobs].[JobHead_DueDate] as [JobHead_DueDate],
[Jobs].[JobAsmbl_AssemblySeq] as [JobAsmbl_AssemblySeq],
[Jobs].[JobAsmbl_PartNum] as [JobAsmbl_PartNum],
[Jobs].[JobOper_OprSeq] as [JobOper_OprSeq],
[Jobs].[JobOper_StartDate] as [JobOper_StartDate],
[Jobs].[JobOper_DueDate] as [JobOper_DueDate],
[Jobs].[JobOper_EstSetHours] as [JobOper_EstSetHours],
[Jobs].[JobOper_EstProdHours] as [JobOper_EstProdHours],
[Jobs].[JobOper_RunQty] as [JobOper_RunQty],
[Labor].[Calculated_SetHours] as [Calculated_SetHours],
[Labor].[Calculated_ProdHours] as [Calculated_ProdHours]
from (select
[OrderRel].[OrderNum] as [OrderRel_OrderNum],
[OrderRel].[OrderLine] as [OrderRel_OrderLine],
[OrderRel].[OrderRelNum] as [OrderRel_OrderRelNum],
[OrderRel].[ReqDate] as [OrderRel_ReqDate],
[OrderRel].[OurReqQty] as [OrderRel_OurReqQty],
(OrderRel.OurJobShippedQty+ OrderRel.OurStockShippedQty) as [Calculated_Shipped],
[OrderDtl].[PartNum] as [OrderDtl_PartNum]
from Erp.OrderHed as OrderHed
inner join Erp.OrderDtl as OrderDtl on
OrderHed.Company = OrderDtl.Company
and OrderHed.OrderNum = OrderDtl.OrderNum
and ( OrderDtl.OpenLine = true )
inner join Erp.OrderRel as OrderRel on
OrderDtl.Company = OrderRel.Company
and OrderDtl.OrderNum = OrderRel.OrderNum
and OrderDtl.OrderLine = OrderRel.OrderLine
and ( OrderRel.OpenRelease = true )
where (OrderHed.OpenOrder = true)) as Orders
left outer join Erp.JobProd as JobProd on
Orders.OrderRel_OrderNum = JobProd.OrderNum
and Orders.OrderRel_OrderLine = JobProd.OrderLine
and Orders.OrderRel_OrderRelNum = JobProd.OrderRelNum
left outer join (select
[JobHead].[JobNum] as [JobHead_JobNum],
[JobHead].[PartNum] as [JobHead_PartNum],
[JobHead].[StartDate] as [JobHead_StartDate],
[JobHead].[DueDate] as [JobHead_DueDate],
[JobAsmbl].[AssemblySeq] as [JobAsmbl_AssemblySeq],
[JobAsmbl].[PartNum] as [JobAsmbl_PartNum],
[JobOper].[OprSeq] as [JobOper_OprSeq],
[JobOper].[EstSetHours] as [JobOper_EstSetHours],
[JobOper].[EstProdHours] as [JobOper_EstProdHours],
[JobOper].[RunQty] as [JobOper_RunQty],
[JobOper].[StartDate] as [JobOper_StartDate],
[JobOper].[DueDate] as [JobOper_DueDate]
from Erp.JobHead as JobHead
inner join Erp.JobAsmbl as JobAsmbl on
JobHead.Company = JobAsmbl.Company
and JobHead.JobNum = JobAsmbl.JobNum
inner join Erp.JobOper as JobOper on
JobAsmbl.Company = JobOper.Company
and JobAsmbl.JobNum = JobOper.JobNum
and JobAsmbl.AssemblySeq = JobOper.AssemblySeq
inner join Erp.JobOpDtl as JobOpDtl on
JobOper.Company = JobOpDtl.Company
and JobOper.JobNum = JobOpDtl.JobNum
and JobOper.AssemblySeq = JobOpDtl.AssemblySeq
and JobOper.OprSeq = JobOpDtl.OprSeq
and ( JobOpDtl.OpDtlSeq = 10 )
where (JobHead.JobClosed = false)) as Jobs on
JobProd.JobNum = Jobs.JobHead_JobNum
left outer join (select
[LaborDtl].[JobNum] as [LaborDtl_JobNum],
[LaborDtl].[AssemblySeq] as [LaborDtl_AssemblySeq],
[LaborDtl].[OprSeq] as [LaborDtl_OprSeq],
(sum(iif(LaborDtl.LaborType = 'S', LaborDtl.LaborHrs,0) )) as [Calculated_SetHours],
(sum(iif(LaborDtl.LaborType = 'P', LaborDtl.LaborHrs,0) )) as [Calculated_ProdHours]
from Erp.LaborDtl as LaborDtl
group by [LaborDtl].[JobNum],
[LaborDtl].[AssemblySeq],
[LaborDtl].[OprSeq]) as Labor on
Jobs.JobHead_JobNum = Labor.LaborDtl_JobNum
and Jobs.JobAsmbl_AssemblySeq = Labor.LaborDtl_AssemblySeq
and Jobs.JobOper_OprSeq = Labor.LaborDtl_OprSeq
I think I have to use union on a subquery or something. What do you think?
Thank you!
Nate