3

次の特性を持つクエリ結果があります。

LIDCode                         Total   Domain  Region  VSE   Version       
AB02                               15   GLOBAL  CANLA    0     6943 
AB02 - 5925 CENTRE STREET SW       31   GLOBAL  CANLA   30     6943

2 つの異なるテーブルからデータを取得していますが、LIDCode 値に長い方のエントリを使用したいと考えています。これは、多くの結果の 1 つのセットです。これら 2 つの行を結合して、結合された行の合計を取得するにはどうすればよいですか? LIDcode の値が変化するので、AB02 を定数値として比較することができません。

私が必要とする結果は次のとおりです。

AB02 - 5925 CENTRE STREET SW       46   GLOBAL  CANLA   30     6943
4

2 に答える 2

4

次のようなことを試すことができます (SQL Server の例として):

select max(LIDCode) as LIDCode
      , sum(Total) as Total
      , Domain
      , Region
      , sum(VSE) as VSE -- or max(VSE)
      , Version
from Mytable
group by left(LIDCode, 4), Domain, Region, Version

LIDCode の別の部分文字列 (スペースの前の最初の部分文字列など) でグループ化する必要がある場合があります。

これは、混乱させて別のRDBMSで試してみるSQL Fiddleです。

于 2013-01-02T22:45:03.367 に答える
1

MySQL では、次のようなことを試すことができます。

SELECT LEFT(LIDCODE, 4) AS LIDCODE, SUM(TOTAL) AS total, `Domain`, `Region`, SUM(VSE) AS vse, `Version`
FROM tbl
GROUP BY LEFT(LIDCODE, 4), `Domain`, `Region`, `Version`

SQL フィドル

于 2013-01-02T22:47:10.980 に答える