在第二个查询SSMS上使用参数过滤器加入查询

时间:2014-05-02 08:42:08

标签: sql oracle10g ssrs-2008 sql-server-2008

我有两张桌子:设备和工作人员。 设备根据设备类型返回特定仓库的设备数量:

MAINTDEPOT EQUIPCOUNT EQUIPTYPE
1          44         MC
2          20         MC
3          5          MC
1          20         FS
2          3          FS
3          10         FS

......等等。除非放入新的套件,否则这些计数很少会改变。

我需要将WORKORDERS的数量加入到此表中,但工作订单的COSTCENTRE为A B或E.这样我就可以生成一定比例的设备与工作人员。

我加入了表格,但是当我向WORKORDERS COSTCENTRE列添加参数过滤器时,设备数量会发生变化,我需要保持不变。

我猜我需要使用子查询来确保左子查询保持静态,而过滤器只更改右手子查询。有谁知道我是怎么做到的?

这是我当前的查询:

SELECT  E.E_MAINTDEPOT, E.E_EQUIPCOUNT, C.Category, E.MYORDER, E.W_WORKCOUNT, 
        E.E_NOWO, E.W_HRS, E.E_QA, E.E_EGI, E.E_CLASS, 
        ISNULL(ROUND(CAST(E.E_NOWO AS Float) / 
                     CAST(E.E_EQUIPCOUNT AS Float) * 100, 2), 100) AS RESULT, 
        SUBSTRING(E.E_CLASS, 1, 1) AS EM_CLASS
FROM (
  SELECT  T.E_MAINTDEPOT, COUNT(T.EQUIP_NO) AS E_EQUIPCOUNT, 
          SUM(C.W_WORKCOUNT) AS W_WORKCOUNT, 
          COUNT(T.EQUIP_NO) - SUM(C.W_WORKCOUNT) AS E_NOWO, T.MYORDER, 
          T.E_QA, T.E_EGI, T.E_CLASS, SUM(C.W_HRS) AS W_HRS
  FROM     EQDType AS T 
  FULL OUTER JOIN EquipWOCount AS C 
    ON T.EQUIP_NO = C.EQUIP_NO
  GROUP BY T.MYORDER, T.E_MAINTDEPOT, T.E_QA, T.E_EGI, T.E_CLASS, C.W_FUNCTION
) AS E 
INNER JOIN EQDCategory AS C 
  ON E.MYORDER = C.Myorder 
ORDER BY E.MYORDER, E.E_MAINTDEPOT

谢谢

0 个答案:

没有答案