1

だから、私は常にこの問題に取り組んでおり、誰かがうまくいかない方法や理由について良い説明をしてくれるかもしれません。GROUP BY を 1 列だけ CSHFutureTAs.Time にしようとしていて、単純な行を統合しようとしました

GROUP BY CSHFutureTAs.Time

ただし、これにより「集計関数の一部として指定された式 'TA' を含まないクエリを実行しようとしました」というエラーが表示されます。

完全な SQL (GROUP CLAUSE なし):

    SELECT CSHFutureTAs.TA
   , CSHFutureTAs.TIME AS CSHGeneralTAs_TIME
   , CSHFutureTAs.[CUT OFF         TIME]
   , CSHFutureTAs.SUNDAY AS CSHGeneralTAs_SUNDAY
   , CSHFutureTAs.MONDAY AS CSHGeneralTAs_MONDAY
   , CSHFutureTAs.TUESDAY AS CSHGeneralTAs_TUESDAY
   , CSHFutureTAs.WEDNESDAY AS CSHGeneralTAs_WEDNESDAY
   , CSHFutureTAs.THURSDAY AS CSHGeneralTAs_THURSDAY
   , CSHFutureTAs.FRIDAY AS CSHGeneralTAs_FRIDAY
   , CSHFutureTAs.SATURDAY AS CSHGeneralTAs_SATURDAY
   , FUT_Totals.TIME AS GeneralTotals_Time
   , FUT_Totals.SUNDAY AS GeneralTotals_SUNDAY
   , FUT_Totals.MONDAY AS GeneralTotals_MONDAY
   , FUT_Totals.TUESDAY AS GeneralTotals_TUESDAY
   , FUT_Totals.WEDNESDAY AS GeneralTotals_WEDNESDAY
   , FUT_Totals.THURSDAY AS GeneralTotals_THURSDAY
   , FUT_Totals.FRIDAY AS GeneralTotals_FRIDAY
   , FUT_Totals.SATURDAY AS GeneralTotals_SATURDAY
   , CSHFutureTAs.[EXCEPTION DAYS]
   , CSHFutureTAs.[EXCEPTION VALUE]
   , IIf([FUT_Totals] ! [Time] = "09:00 - 21:00"
      OR [FUT_Totals] ! [Time] = "10:00 - 22:00", 9, 1) AS SortKey
FROM
(
   CSHFutureTAs
   INNER JOIN FUT_Totals ON (CSHFutureTAs.[HG ID] = FUT_Totals.HG_ID)
      AND (CSHFutureTAs.TIME = FUT_Totals.TIME)
)
INNER JOIN Current_INFO ON (CSHFutureTAs.[HG ID] = Current_INFO.[HG ID])
   AND (CSHFutureTAs.[HEADER ID] = Current_INFO.[HEADER ID])
   AND (FUT_Totals.HG_ID = Current_INFO.[HG ID])
ORDER BY IIf([FUT_Totals] ! [Time] = "09:00 - 21:00"
      OR [FUT_Totals] ! [Time] = "10:00 - 22:00", 9, 1);
4

1 に答える 1

1

GROUP BY CSHFutureTAs.Timeあなたの節は正確にどこにありますか?

1 つの列でグループ化する必要があり、グループの一部ではない他の列には、SUM や AVG などの集計関数が必要です。

また、FROMにその括弧が必要だとは思いません。なぜそれを追加したのですか?

于 2012-10-22T12:46:49.990 に答える