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'

2番目の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 に答える