単純なselect max関数が間違った値を返す。私は以下のクエリを実行するとき、私は最大値を100として、列の現在の最大値として11を取得しています。私はこのクエリを実行するときに私はもう一つの問題を抱えています。私が間違っていること。max(columnname)が間違った出力を返す
REPORT
以下SELECT t7.[timestamp], t7.[timestamp_utc], t7.[PT_100SCALED_VAL0], t7.[PT_101SCALED_VAL0],
t7.[PT_102SCALED_VAL0], t7.[PT_103SCALED_VAL0], t7.[PT_104SCALED_VAL0], t7.[PT_105SCALED_VAL0],
t7.[PT_200SCALED_VAL0], t7.[PT_201SCALED_VAL0], t7.[PT_300SCALED_VAL0] ,
(SELECT MAX([PT_100SCALED_VAL0]) FROM REPORT) AS
PT_100SCALED_VAL0_MAXIMUM FROM [REPORT] t7
Where t7. [PT_100SCALED_VAL0]=100
group by t7.[timestamp],t7.[timestamp_utc],t7.[PT_100SCALED_VAL0],t7.[PT_101SCALED_VAL0],t7.[PT_102SCALED_VAL0],t7.[PT_103SCALED_VAL0],t7.[PT_104SCALED_VAL0],t7.[PT_105SCALED_VAL0],t7.[PT_200SCALED_VAL0],t7.[PT_201SCALED_VAL0],t7.[PT_300SCALED_VAL0]
FROM SELECT MAX(小数点としてキャスト([PT_100SCALED_VAL0]))私のテーブルのデザインクエリ以下
USE [master]
GO
/****** Object: Table [dbo].[REPORT] Script Date: 03/24/2016 16:24:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[REPORT](
[timestamp] [datetime] NULL,
[timestamp_utc] [datetime] NOT NULL,
[PT_100SCALED_VAL0] [float] NULL,
[PT_101SCALED_VAL0] [float] NULL,
[PT_102SCALED_VAL0] [float] NULL,
[PT_103SCALED_VAL0] [float] NULL,
[PT_104SCALED_VAL0] [float] NULL,
[PT_105SCALED_VAL0] [float] NULL,
[PT_200SCALED_VAL0] [float] NULL,
[PT_201SCALED_VAL0] [float] NULL,
[PT_300SCALED_VAL0] [float] NULL,
CONSTRAINT [PK_REPORT] PRIMARY KEY CLUSTERED
(
[timestamp_utc] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
が私のテーブルのデータです。
timestamp timestamp_utc PT_100SCALED_VAL0 PT_101SCALED_VAL0 PT_102SCALED_VAL0 PT_103SCALED_VAL0 PT_104SCALED_VAL0 PT_105SCALED_VAL0 PT_200SCALED_VAL0 PT_201SCALED_VAL0 PT_300SCALED_VAL0
2016-01-08 16:02:50.780 2016-01-08 10:32:50.780 11 22 33 44 55 66 0 0 0
2016-01-08 16:04:42.333 2016-01-08 10:34:42.333 11 22 33 44 55 66 0 0 0
次のクエリから得られる数値は次のとおりです。「[dbo]。[REPORT] 'から最大値(PT_100SCALED_VAL0)を選択してください。 11と異なる場合は、サンプルデータが正しくありません。 – Arvo
あなたが言及したクエリを実行することによって私は間違っている最大値として100を取得しています。私のデータにはいくつかのヌル値があり、11回はpt_100scaled_val0列に対して何回も繰り返されます – Tan
できません。あなたは複数のスキーマにREPORTテーブルを持っているかもしれません。複数のデータベースが混在しているかもしれません( 'create table'スクリプトが' master'データベースに結びついているのはなぜですか?)。単純な 'max()'は存在しない値を作成することはできません。 '[dbo]からPT_100SCALED_VAL0を選択して実行してください。[PT_100SCALED_VAL0 desc]によって[REPORT]命令を実行してください。ここから私のクエリをコピー・ペーストしましたか、それとも自分で入力しましたか?その後、元のクエリについて、なぜそこにスペースがあるのですか? ? 't7。 [PT_100SCALED_VAL0] ' – Arvo