当前,队列向我显示了 toastr 中产品的工作量以及 toastr 中产品的工作量,但是实际上是在 toastr 外进行了几个小时的测试。

我用每种产品的“gesamt”来计算h->这向我展示了它们已经在 toastr 中停留了多长时间。通常,产品在db中“Zielgröße”中定义的 toastr 中放置1000h。

我想要的是队列应该向我显示接下来2周的 toastr 工作量,作为预测值(336h)。那就是所有未显示在队列中的“Zielgröße”(大多数为1000)上的“gesamt”,都可以在临时表中处理。

是否可以在Micrososft SQL Server中处理此问题?

这是代码:

SELECT TesterID,Name, TesterNr, COUNT(Name) as Anzahl, gesamt  FROM
(SELECT AllgemeineAngaben.QualiID,
                                Bezeichnung,
                                AnzModule,
                                Tester.Name, TesterNr,
                                Testname,
                                v_gesamtBerechnungLaufend.TestaufstellungID,
                                lastRO,
                                gesamt,
                                v_gesamtBerechnungLaufend.Einheit,
                                v_gesamtBerechnungLaufend.PlanID,
                                v_gesamtBerechnungLaufend.TesterID
                        FROM DB.dbo.AllgemeineAngaben inner join
                        DB.dbo.v_gesamtBerechnungLaufend on
                        AllgemeineAngaben.QualiID = v_gesamtBerechnungLaufend.QualiID inner join
                        DB.dbo.Tester on
                        Tester.TesterID = v_gesamtBerechnungLaufend.TesterID inner join
                        DB.dbo.Testaufstellung on
                        Testaufstellung.TestaufstellungID = v_gesamtBerechnungLaufend.TestaufstellungID inner join
                        DB.dbo.Testnamen on Testnamen.TestnameID = Testaufstellung.TestnameID
                        Where Tester.Name = 'KPS02'
                            UNION ALL
                            SELECT  AllgemeineAngaben.QualiID,
                        Bezeichnung, AnzModule, Tester.Name, TesterNr,
                        Testname,
                        Testaufstellung.TestaufstellungID,
                        v_gesamtBerechnung.gesamt as lastRO,
                        v_gesamtBerechnung.gesamt,
                        v_gesamtBerechnung.Einheit,
                        v_gesamtBerechnung.PlanID,
                        v_gesamtBerechnung.TesterID
                FROM    DB.dbo.AllgemeineAngaben inner join
                        DB.dbo.v_gesamtBerechnung on
                        AllgemeineAngaben.QualiID = v_gesamtBerechnung.QualiID inner join
                        DB.dbo.Tester on
                        Tester.TesterID = v_gesamtBerechnung.TesterID inner join
                        DB.dbo.Testaufstellung on
                        Testaufstellung.TestaufstellungID = v_gesamtBerechnung.TestaufstellungID inner join
                        DB.dbo.Testnamen on Testnamen.TestnameID = Testaufstellung.TestnameID
                        WHERE Testaufstellung.fertig ='0'
                        AND Testaufstellung.aktiv ='1'
                        AND Testaufstellung.Zielgröße > v_gesamtBerechnung.gesamt
                        AND Tester.Name = 'KPS02'
                        AND v_gesamtBerechnung.TestaufstellungID not in (Select TestaufstellungID from DB.dbo.v_gesamtBerechnungLaufend)) x
                        group by TesterID, Name, TesterNr, gesamt

在此表中显示了我想要的示例

实际工作量
          TesterID       Name    TesterNr   Anzahl      gesamt
          -------------- ------- ---------- ----------- -----------
Product1    8              KPS02   2          1           209
Product2    8              KPS02   2          1           216
Product3    8              KPS02   2          1           816
Product4    8              KPS02   2          1           835

2周内的工作量
         TesterID       Name    TesterNr   Anzahl      gesamt
         -------------- ------- ---------- ----------- -----------
Product1        8              KPS02   2          1           545
Product2        8              KPS02   2          1           552

最后的记录超过1000个Zielgröße,所以不要在预测队列中显示它们
Product3    8              KPS02   2          1           1152
Product4    8              KPS02   2          1           1171

我希望你们能跟着我。谢谢你的帮助。

最佳答案

我将编辑此答案,直到解决为止,但这是我的第一次尝试:

SELECT TesterID,Name, TesterNr, COUNT(Name) as Anzahl, gesamt + 336 as gesamt
FROM
(SELECT AllgemeineAngaben.QualiID,
                                Bezeichnung,
                                AnzModule,
                                Tester.Name, TesterNr,
                                Testname,
                                v_gesamtBerechnungLaufend.TestaufstellungID,
                                lastRO,
                                gesamt,
                                v_gesamtBerechnungLaufend.Einheit,
                                v_gesamtBerechnungLaufend.PlanID,
                                v_gesamtBerechnungLaufend.TesterID
                        FROM DB.dbo.AllgemeineAngaben inner join
                        DB.dbo.v_gesamtBerechnungLaufend on
                        AllgemeineAngaben.QualiID = v_gesamtBerechnungLaufend.QualiID inner join
                        DB.dbo.Tester on
                        Tester.TesterID = v_gesamtBerechnungLaufend.TesterID inner join
                        DB.dbo.Testaufstellung on
                        Testaufstellung.TestaufstellungID = v_gesamtBerechnungLaufend.TestaufstellungID inner join
                        DB.dbo.Testnamen on Testnamen.TestnameID = Testaufstellung.TestnameID
                        Where Tester.Name = 'KPS02'
                            UNION ALL
                            SELECT  AllgemeineAngaben.QualiID,
                        Bezeichnung, AnzModule, Tester.Name, TesterNr,
                        Testname,
                        Testaufstellung.TestaufstellungID,
                        v_gesamtBerechnung.gesamt as lastRO,
                        v_gesamtBerechnung.gesamt,
                        v_gesamtBerechnung.Einheit,
                        v_gesamtBerechnung.PlanID,
                        v_gesamtBerechnung.TesterID
                FROM    DB.dbo.AllgemeineAngaben inner join
                        DB.dbo.v_gesamtBerechnung on
                        AllgemeineAngaben.QualiID = v_gesamtBerechnung.QualiID inner join
                        DB.dbo.Tester on
                        Tester.TesterID = v_gesamtBerechnung.TesterID inner join
                        DB.dbo.Testaufstellung on
                        Testaufstellung.TestaufstellungID = v_gesamtBerechnung.TestaufstellungID inner join
                        DB.dbo.Testnamen on Testnamen.TestnameID = Testaufstellung.TestnameID
                        WHERE Testaufstellung.fertig ='0'
                        AND Testaufstellung.aktiv ='1'
                        AND Testaufstellung.Zielgröße > v_gesamtBerechnung.gesamt
                        AND Tester.Name = 'KPS02'
                        AND v_gesamtBerechnung.TestaufstellungID not in (Select TestaufstellungID from DB.dbo.v_gesamtBerechnungLaufend)) x
                        group by TesterID, Name, TesterNr, gesamt
) A
WHERE gesamt + 336 < 1000

在我看来,您需要做的就是将336添加到当前值,然后过滤掉小于1000的任何内容。

10-04 19:06