10

私は現在 SQL コースを受講している学生開発者です。現在、テーブルからいくつかの行グループの合計を取得しようとしています。私は SQL 開発に非常に慣れていないため、次のシナリオで何が問題なのかよくわかりません。特定の行を選択してから残高列を追加したい大きなテーブルがあります。

以下は結果にデータを表示しませんが、その理由はよくわかりません。betweenステートメントはテーブルごとに1回しか使用できないという予感がありますが、間違っているのでしょうか?

Select Description, SUM(Balance) AS Total_Balance
FROM Chart_Of_Accounts
WHERE (Account BETWEEN ('400401') AND ('400407')) 
AND (Account BETWEEN ('440094') AND ('440100')) 
AND (Account BETWEEN ('450094') AND ('450100'))
GROUP BY Description, Balance 

編集 10.1.2012 (Richard aka Cyber​​kiwi) の要求に応じて

私が持っているもの

Set 1
|Account        |Description         |Balance
|4004xx         |Red Wine            |$2361.23
|4004xx         |White Wine          |$3620.23
|4004xx         |Rice Wine           |$1223.23

Set 2
|Account        |Description         |Balance
|4400xx         |Red Wine            |$4361.23
|4400xx         |White Wine          |$3260.23
|4400xx         |Rice Wine           |$223.23

Set 3
|Account        |Description         |Balance
|4500xx         |Red Wine            |$1361.23
|4500xx         |White Wine          |$1620.23
|4500xx         |Rice Wine           |$1223.23

私が達成しようとしている結果

Total
|Description         |Total_Balance
|Red Wine            |$8083.69
|White Wine          |$8500.69
|Rice Wine           |$2669.69

私の投稿を読んでくれてありがとう!また、SQL 開発に関するアドバイスもお待ちしております。フィードバックは大歓迎です。

4

3 に答える 3

25

AND の代わりに OR を使用してください。
あなたが言いたいのは、A と B のor間、C と D の間などの結果を教えてくださいということです。

  SELECT Description, SUM(Balance) AS Total_Balance
    FROM Chart_Of_Accounts
   WHERE (Account BETWEEN '400401' AND '400407') 
      OR (Account BETWEEN '440094' AND '440100') 
      OR (Account BETWEEN '450094' AND '450100')
GROUP BY Description

不要な括弧は削除しましたが、OR は AND の後に処理されるため、残りの括弧を削除することもできます。参照: SQL Server 演算子の優先順位

于 2012-10-01T01:06:56.390 に答える
2

あなたの名前が W で始まる場合、文字は ADFMUZ の間にありますか? もちろん違います。

ただし、ADまたはFMまたはUZ の間である可能性があります。

同じことが口座番号にも当てはまります。

于 2012-10-01T01:16:45.427 に答える