繁体   English   中英

问题与多个选择语句

[英]Issue with Multiple select statements

我在查询中使用多个select语句和案例以获得结果。 请查看我要尝试解决的查询。 但这给我聚合函数一个错误。 我正在尝试做的是,我有3个预算标准,结果应该与此相对应。 他们是:

Budget 2015
Budget Jan-july2015
Budget July-dec2015

在第一场我收到预算全2015年,在第二个我想从预算支出july-dec2015为“当前预算”和第三两个预算jan-july2015july-dec2015应该作为“累计支出”。

SELECT CASE WHEN T1.[AcctName] LIKE '%Salaries%' THEN 'Salaries'
            WHEN T1.[AcctName] LIKE '%Travel%' THEN 'Travel'
            WHEN T1.[AcctName] LIKE '%Supplies%' THEN 'Supplies'
            WHEN T1.[AcctName] LIKE '%Consultants%' THEN 'Consultants'
            WHEN T1.[AcctName] LIKE '%Patient%' THEN 'Patient Care'
            WHEN T1.[AcctName] LIKE '%Equipment%' THEN 'Equipments' 
            WHEN T1.[AcctName] LIKE '%Expense%' THEN 'Other Expenses' 
            WHEN T1.[AcctName] LIKE '%Alteration%' THEN 'Alterations/Renovations' ELSE 'Alterations/Renovations' END,
    SUM(T0.[DebLTotal]/85) AS buget , (Select sum(T0.[CrdRLTotal]/85) where T2.[Name] = 'July-Dec2015' ) as 'CurrentBudget',
    (select sum(T0.[CrdRLTotal]/85) + 'CurrentBudget' where T2.[Name] = 'jan-july2015') as 'Cummulative' 
FROM OBGT 
T0 INNER JOIN OACT T1 ON T0.[AcctCode] = T1.[AcctCode] INNER JOIN OBGS T2 ON T0.[Instance] = T2.[AbsId] where T2.[Name] = 'Main Budget 2015'
GROUP BY CASE WHEN T1.[AcctName] LIKE '%Salaries%' THEN 'Salaries'
              WHEN T1.[AcctName] LIKE '%Travel%' THEN 'Travel'
              WHEN T1.[AcctName] LIKE '%Supplies%' THEN 'Supplies'
              WHEN T1.[AcctName] LIKE '%Consultants%' THEN 'Consultants' 
              WHEN T1.[AcctName] LIKE '%Patient%' THEN 'Patient Care' 
              WHEN T1.[AcctName] LIKE '%Equipment%' THEN 'Equipments'
              WHEN T1.[AcctName] LIKE '%Expense%' THEN 'Other Expenses'
              WHEN T1.[AcctName] LIKE '%Alteration%' THEN 'Alterations/Renovations' ELSE 'Alterations/Renovations' END

我不知道如何获取所有必填字段。

不是答案,只是为了说明如何使用派生表t1来以较短的形式编写代码。

SELECT T1.[AcctName],
       SUM(T0.[DebLTotal]/85) AS buget,
       (Select sum(T0.[CrdRLTotal]/85) where T2.[Name] = 'July-Dec2015' ) as 'CurrentBudget',
       (select sum(T0.[CrdRLTotal]/85) + 'CurrentBudget' where T2.[Name] = 'jan-july2015') as 'Cummulative' 
FROM OBGT T0
INNER JOIN
    (
    SELECT CASE WHEN T1.[AcctName] LIKE '%Salaries%' THEN 'Salaries'
                WHEN T1.[AcctName] LIKE '%Travel%' THEN 'Travel'
                WHEN T1.[AcctName] LIKE '%Supplies%' THEN 'Supplies'
                WHEN T1.[AcctName] LIKE '%Consultants%' THEN 'Consultants'
                WHEN T1.[AcctName] LIKE '%Patient%' THEN 'Patient Care'
                WHEN T1.[AcctName] LIKE '%Equipment%' THEN 'Equipments' 
                WHEN T1.[AcctName] LIKE '%Expense%' THEN 'Other Expenses' 
                WHEN T1.[AcctName] LIKE '%Alteration%' THEN 'Alterations/Renovations'
                ELSE 'Alterations/Renovations'
           END as [AcctName],
           [AcctCode]
    from OACT
    ) as T1 ON T0.[AcctCode] = T1.[AcctCode]
INNER JOIN OBGS T2 ON T0.[Instance] = T2.[AbsId]
where T2.[Name] = 'Main Budget 2015'
GROUP BY T1.[AcctName]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM