0

我有一个类似的问题,我想在以下查询中总结“totaal_inclusief_btw”:有人可以帮我解决这个问题吗?想不通。

表 1(制作)

factuur_id    factuur_datum    factuur_btw_weergave
---------------------------------------------------------------------------
1             2012-05-10       inclusief
2             2012-05-10       exclusief

表 2 (factuur_regels)

regel_id    regel_factuur_id    regel_aantal   regel_bedrag   regel_btw
---------------------------------------------------------------------------
18          1                   1              40             19
19          1                   2              40             6
20          2                   1              40             19
21          2                   2              40             6

使用以下查询:

SELECT 
CASE    
 WHEN factuur_btw_weergave = 'inclusief' 
 THEN SUM(regel_bedrag*regel_aantal)
 WHEN factuur_btw_weergave = 'exclusief' 
 THEN SUM(((regel_bedrag*regel_aantal)/100)*(100+regel_btw))
END
AS totaal_inclusief_btw,
SUM(totaal_inclusief_btw) AS new
FROM factuur_regels
INNER JOIN facturen ON factuur_id = regel_factuur_id
GROUP BY factuur_datum

我得到错误:

#1054 - Unknown column 'totaal_inclusief_btw' in 'field list'

当我离开第二个 SUM“SUM(totaal_inclusief_btw) AS new”时:

SELECT 
CASE    WHEN factuur_btw_weergave = 'inclusief' THEN SUM(regel_bedrag*regel_aantal)
        WHEN factuur_btw_weergave = 'exclusief' THEN SUM(((regel_bedrag*regel_aantal)/100)*(100+regel_btw))
        END
        AS totaal_inclusief_btw

FROM factuur_regels
LEFT JOIN facturen ON factuur_id = regel_factuur_id
WHERE factuur_datum = '2012-05-10'
GROUP BY factuur_datum

我会得到这个结果:

totaal_inclusief_btw: 
240 (this needs to be 252,4)

当我按“factuur_id”分组时:

SELECT 
CASE    WHEN factuur_btw_weergave = 'inclusief' THEN SUM(regel_bedrag*regel_aantal)
        WHEN factuur_btw_weergave = 'exclusief' THEN SUM(((regel_bedrag*regel_aantal)/100)*(100+regel_btw))
        END
        AS totaal_inclusief_btw

FROM factuur_regels
LEFT JOIN facturen ON factuur_id = regel_factuur_id
WHERE factuur_datum = '2012-05-10'
GROUP BY factuur_id

我会得到这个结果:

totaal_inclusief_btw: 
120
132.4

我希望有人能帮我解答这个问题!谢谢你

4

1 回答 1

1

问题解决了

它现在适用于以下查询:

SELECT factuur_datum, SUM(totaal_inclusief_btw)
FROM    (
               SELECT  factuur_datum,
               CASE    WHEN factuur_btw_weergave = 'inclusief' THEN SUM(regel_bedrag*regel_aantal)
                            WHEN factuur_btw_weergave = 'exclusief' THEN SUM(((regel_bedrag*regel_aantal)/100)*(100+regel_btw))
                            END
                            AS totaal_inclusief_btw
               FROM factuur_regels
               LEFT JOIN facturen ON factuur_id = regel_factuur_id
               WHERE factuur_datum = '2012-05-10'
               GROUP BY factuur_id
               )q

此查询返回:252.4(正确)

于 2012-05-11T12:49:21.757 回答