私はkcal(int)という名前のフィールドを持っていて、別の条件の値を合計したいと思います。最初にkcalフィールドを選択できたら、これは次のようになりますが、列がいくつかの条件を満たしている合計の値が必要です。フィールドを選択せずにSQLの同じフィールドを合計する方法
SELECT kcal AS k1, kcal AS k2, kcal AS k3, (k1 + k2 + k3) FROM table WHERE ...
編集:私はこのテーブル
CREATE TABLE [dbo].[Menu] (
[id_product] INT NOT NULL,
[product_name] NCHAR (50) NOT NULL,
[description] TEXT NULL,
[price] INT NOT NULL,
[kcal] INT NOT NULL,
[dish] INT NOT NULL,
PRIMARY KEY CLUSTERED ([id_product] ASC)
を持っています)。
そして、3つのproduct_name(それぞれ異なる料理の値(1,2,3のいずれでもよい))、3つの組み合わせのtotal_kcal、3つの組み合わせの合計価格、条件と価格< 50の合計とそのためにキロカロリー< 2000年の合計が、私はこれを書いていること:
SELECT (SELECT product_name FROM Menu WHERE dish = 1) AS Dish1, (SELECT product_name FROM Menu WHERE dish = 2) AS Dish2, (SELECT product_name FROM Menu WHERE dish = 3) AS Dish3, SUM(kcal) AS Total_Kcal , SUM(price) as Total_Price FROM Menu WHERE dish IN (1, 2, 3) GROUP BY dish HAVING SUM(pret) < 50 AND SUM(kcal) < 2000
それは和が対応していない問題で、うまく動作します。
K2 ASキロカロリー、サンプルデータと予想される出力 – GurV
'K1 ASキロカロリーSELECTを投稿してください、kcal AS k3、(kcal * 3).. 'は意味をなさないが、あなたの無効なクエリと同じことをするだろう。 –
@PaulSpiegel私はそれがないことを知っていますが、私はこれを書くと、実際に何をする必要があるかを知ることを望みました。フィールドValue1とValue2を持つテーブルがあった場合、SELECT Value1、Value2、(Value1 + Value2)FROMテーブル。 – Liviu