MySQLの文でDateDiff関数使い方
-
22-08-2019 - |
質問
このはDATEDIFFを使用して動作します私のSQL文です。
SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HREC
WHERE datediff (dd, '2006-05-05', getdate()) > 90
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
私はそうのようなMAX(b134_recdate)でハードコード日付 '2006-05-05' を交換する必要があります:
SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HREC
where datediff (dd, MAX(b134_recdate), getdate()) > 90
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
しかし、私は、このエラーメッセージを取得します:
がHAVING句または選択リストに含まれるサブクエリであり、そして凝集され、列が外部参照でない限り、集合体がWHERE句に表示されないことがあります。
任意のアイデアはどのように私のSQL文を修正するには?
解決
試してみてください。
SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HRE
where datediff (dd,
(select MAX(b134_recdate) from B134HRE)
, getdate()) > 90
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
他のヒント
あなたはこれを移動しようとしたことがあります:
datediff (dd, MAX(b134_recdate), getdate()) > 90
HAVING句に?
SQL文は以下のようになります:
SELECT SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HRE
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
HAVING datediff (dd, MAX(b134_recdate), getdate()) > 90
このコードは、SQL Serverのです。
MAXは、テーブル全体のためになるsould場合は、私はよく分からない。
DECLARE @MaxDate datetime
SELECT @MaxDate=MAX(b134_recdate) FROM B134HRE
/* if you don't want time you need to trim it from @maxDate*/
SELECT
SUM(b134_nettpay) AS Total, b134_rmcid, b134_recdate
FROM B134HRE
where datediff (dd, @MaxDate, getdate()) > 90
GROUP BY b134_rmcid, b134_recdate
ORDER BY b134_recdate DESC, b134_rmcid
各群当たり
SELECT
SUM(b.b134_nettpay) AS Total, b.b134_rmcid, b.b134_recdate
FROM B134HRE b
INNER JOIN (SELECT
b134_rmcid, b134_recdate , MAX(b134_recdate) AS MaxDate
FROM B134HRE
GROUP BY b134_rmcid, b134_recdate
) dt ON b.b134_rmcid=dt.b134_rmcid AND b.b134_recdate=dt.b134_recdate
where datediff (dd, dt.MaxDate, getdate()) > 90
GROUP BY b.b134_rmcid, b.b134_recdate
ORDER BY b.b134_recdate DESC, b.b134_rmcid
しかし、あなたは、try
これらを与えることができます所属していません StackOverflow