1

データベースdbadmin、 table- tbl_empreimbursefields-emp_id,rem_amount,rem_date があります。

特定の日付から1週間前までのデータを取得したい。このクエリを試したところ、

SELECT SUM(rem_amount),DATEADD(dd, -7, "2012-01-10")  
FROM tbl_empreimburse 
GROUP BY emp_id 
HAVING emp_id='5' AND rem_date BETWEEN DATEADD(dd, -7, "2012-01-10") AND "2012-01-10"

「 FUNCTION dbadmin.DATEADD does not exist 」というエラーが表示されます。「2012-01-10」を日付形式に変換する必要がありますか? 助けてください。

4

2 に答える 2

1

これを試して:

このクエリは、従業員 ID 5 と 7 日間の日付期間に対して指定した結果を返します。

SELECT emp_id, SUM(rem_amount) 
FROM tbl_empreimburse 
WHERE emp_id='5' AND DATEDIFF('2012-12-31', rem_date) BETWEEN 0 AND 7;

また

以下のクエリは、すべての従業員データを提供します。

SELECT emp_id, SUM(rem_amount) 
FROM tbl_empreimburse 
GROUP BY emp_id 
HAVING DATEDIFF('2012-12-31', rem_date) BETWEEN 0 AND 7;
于 2012-12-15T09:13:41.493 に答える
0

この*SQLFIDDLE 参照を確認してください。:)

group byここで句を使用している理由がわかりません...

サンプルの日付:

ID  AMOUNT  RDATE
1   3400    January, 01 2012 00:00:00+0000
2   5000    January, 10 2012 00:00:00+0000
3   3000    January, 02 2012 00:00:00+0000
5   1000    January, 05 2012 00:00:00+0000
5   2000    January, 04 2012 00:00:00+0000
2   2000    February, 10 2012 00:00:00+0000

クエリ:

select * from emp
where id = 5;

ここに合計を取得するクエリがあります

select id, sum(amount)
from emp
where rdate between '2012-01-10' - interval 7 day
and '2012-01-10'
and id = 5
;

結果: 従業員 ID ごとのすべてのレコード = 5

ID  AMOUNT  RDATE
5   1000    January, 05 2012 00:00:00+0000
5   2000    January, 04 2012 00:00:00+0000

従業員 ID ごとの金額の合計 = 5

ID  SUM(AMOUNT)
5   3000
于 2012-12-15T08:28:56.843 に答える