我有一个名为raporal
的表格,我需要在其中显示birimmaliyet
和enerji/metrekare
。
这就是我编写下面给出的查询的原因。但是我得到每个查询结果相同的结果" 1.5"。每行的结果是相同的。
我不知道如何解决这个问题。有人可以帮我这个吗?我非常需要你的帮助。
这是我的问题:
DECLARE @enerjimetrekare decimal
SET @enerjimetrekare = (select((Max(enerjiküm)-min(enerjiküm))/ Max(üretimmik))from raporal)
SELECT
Ürün,
MAX(ÜretimMik) As üretim_mik,
Ebat,
(max(enerjiküm)- min(enerjiküm)) as EnerjiTüketim,
@enerjimetrekare * 1.5 as Birimmaliyet,
cast(((cast(Max(enerjiküm)as decimal(5,2)))
- cast(min(enerjiküm)as decimal(5,2)))
/ cast(Max(üretimmik)as decimal(5,2)) as numeric (36,2)) as "enerji/metrekare"
FROM raporal
WHERE ÜretimMik is not null and ÜretimMik<>0
GROUP BY Ürün,ebat
结果是:
BirimMaliyet | enerji/metrekare
1.5 | 0.74
1.5 | 0.00
1.5 | 0.72
1.5 | 1.98
1.5 | 1.68
1.5 | 0.00
1.5 | 1.70
我想这样表:( enerji / metrekare(根据产品)* 1,5)
BirimMaliyet | enerji/metrekare
1.11 | 0.74
0.00 | 0.00
1.08 | 0.72
2.97 | 1.98
2.52 | 1.68
0.00 | 0.00
2.55 | 1.70
答案 0 :(得分:0)
试试这个(@sasfrog很好地描述了你的问题!):
SELECT
Ürün,
MAX(ÜretimMik) AS üretim_mik,
Ebat,
MAX(enerjiküm) - MIN(enerjiküm) AS EnerjiTüketim,
( ( MAX(enerjiküm) - MIN(enerjiküm) ) / MAX(üretimmik) ) * 1.5 AS Birimmaliyet,
CAST((( CAST(MAX(enerjiküm) AS DECIMAL(5, 2))) - CAST(MIN(enerjiküm) AS DECIMAL(5, 2)))
/CAST(MAX(üretimmik) AS DECIMAL(5, 2)) AS NUMERIC(36, 2)) AS [enerji/metrekare]
FROM
raporal
WHERE
ÜretimMik IS NOT NULL
AND ÜretimMik <> 0
GROUP BY
Ürün,
ebat