首页 > 解决方案 > 如何在 SQL Server Management Studio 中对 CASE 中的两行求和

问题描述

我目前正在尝试构建一个 SQL Server 代理,它应该可以解决我们的数据库存在的价格问题。这应该是一个快速修复,希望或提供商确实提出了更方便的解决方案。我有以下声明:

SELECT 
    CASE
        WHEN KHKVKBelegePositionen.StuecklistenTyp = '0'
            THEN (SELECT KHKVKBelegePositionen.Gesamtpreis) 
        WHEN KHKVKBelegeStuecklisten.Gesamtpreis != '0,00' 
             AND KHKVKBelege.A0Land != 'DE' 
             AND (KHKVKBelegePositionen.Artikelgruppe != '181' OR 
                  KHKVKBelegePositionen.Artikelgruppe != '182' OR 
                  KHKVKBelegePositionen.Artikelgruppe != '183') 
             AND KHKVKBelegePositionen.StuecklistenTyp != '0'
            THEN (SELECT KHKVKBelegeStuecklisten.Gesamtpreis)
        WHEN (KHKVKBelegePositionen.Artikelgruppe = '181' OR 
              KHKVKBelegePositionen.Artikelgruppe = '182' OR 
              KHKVKBelegePositionen.Artikelgruppe = '183') 
             AND KHKVKBelegePositionen.StuecklistenTyp != '0'
            THEN (SELECT KHKVKBelegeStuecklisten.Gesamtpreis) 
        ELSE 
            CAST(KHKVKBelegeStuecklisten.GesamtpreisInternEW as varchar)
    END AS Gesamtpreis
FROM 
    KHKVKBelegeStuecklisten (READUNCOMMITTED)     
INNER JOIN 
    KHKVKBelege ON KHKVKBelegeStuecklisten.Belid = KHKVKBelege.BElid    
INNER JOIN 
    KHKVKBelegePositionen ON KHKVKBelegeStuecklisten.BelID = KHKVKBelegePositionen.BelID
WHERE 
    KHKVKBelegePositionen.BelID = '3519582'

有些项目确实由两部分组成,每一部分都有一个值。所以输出是 2 行有 2 个值。我想将这些值相加为一个值,以更新表格。

这部分我最挣扎

WHEN (KHKVKBelegePositionen.Artikelgruppe = '181' OR 
      KHKVKBelegePositionen.Artikelgruppe = '182' OR 
      KHKVKBelegePositionen.Artikelgruppe = '183') 
     AND KHKVKBelegePositionen.StuecklistenTyp != '0'
    THEN (SELECT KHKVKBelegeStuecklisten.Gesamtpreis) `

在我的示例中,数据将如下所示:

Overall Price
1. 13.75
2. 2.57

我需要合并这个值才能更新

标签: sqlsql-serversumcase

解决方案


推荐阅读