1

GROUP同じ DATE で異なる時刻の DATE を使用するにはどうすればよいですか?

私はこのコードを使用していますが、エラーが発生しています:

SELECT TO_CHAR(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS'),'YYYY-MM-DD') DAY, DE_NO
FROM (
 SELECT TO_CHAR(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS'),'YYYY-MM-DD') DAY, DE_NO
 FROM PACKINGAPPS_FQA
WHERE (TO_CHAR(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS'),'YYYY-MM-DD') BETWEEN '$start_date' AND '$end_date')
)
GROUP BY DAY, DE_NO

エラーは次のとおりです。

Warning: oci_execute() [function.oci-execute]: ORA-00904: "FQA_START_DATE": invalid identifier in...

アドバイスをお願いします。ありがとう

4

6 に答える 6

1

内部クエリFQA_START_DATEのフィールド リストにないため、最初の SELECT が正しくありません。

これを試して

SELECT DAY, DE_NO
FROM (
 SELECT TO_CHAR(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS'),'YYYY-MM-DD') 
   DAY, 
   DE_NO
 FROM PACKINGAPPS_FQA
WHERE (TO_CHAR(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS'),'YYYY-MM-DD') 
         BETWEEN '$start_date' AND '$end_date')
)
GROUP BY DAY, DE_NO
于 2013-10-22T10:39:26.943 に答える
0

FQA_START_DATEまず、インライン ビュー (句のSELECTステートメント) にエイリアスを持つ列がありません。FROMベース テーブルにその名前の列がある場合がありますが、ベース テーブルではなくSELECTインライン ビューから取得しているため、ここではカウントされません。

第 2 に、WHEREインライン ビューの状態が完全に狂ってしまい、文字値を 2 つの文字値の間で比較しているため、間違った結果が返されます。

代わりに、次のクエリを使用することをお勧めします。

  SELECT TRUNC(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS')) AS dt, de_no
    FROM packingapps_fqa
   WHERE TRUNC(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS'))
         BETWEEN TRUNC (TO_DATE('$start_date')) AND TRUNC(TO_DATE('$end_date'))
GROUP BY TRUNC(TO_DATE(FQA_START_DATE,'DD-Mon-YYYY HH24:MI:SS')), de_no;
于 2013-10-22T14:43:29.927 に答える
0
SELECT * FROM TABLE_NAME 
  WHERE DATE(coloumn_name)='SPECIFY DATE' 
  GROUP BY coloumn_name
于 2013-10-22T10:41:18.303 に答える
0

あなたが使用することができます

SELECT field_name(s) FROM table_name GROUP BY DATE(date_field);

ここで Date() 関数は datetime を date にします。

日時関数.

于 2013-10-22T10:41:25.683 に答える