0

私はこれを持っていました:

select company
from alldata
where **{previous month of date("01.05.2011")}**
IN
(select month from alldata where SumNrSpot=0)

クローズで前月を見つける必要がありますwhere。お願いします、誰か助けてくれませんか?

4

6 に答える 6

3

MySQLを使用している場合:

SELECT MONTH(DATE_SUB('2011-05-01', 1 MONTH))

あなたの場合

select company
from alldata
where MONTH(DATE_SUB('2011-05-01', 1 MONTH))
IN
(select month from alldata where SumNrSpot=0)

両方の機能の詳細については、こちらをご覧ください。

于 2012-10-05T07:46:48.297 に答える
1

SQL サーバーの場合

関数MONTH()を使用して、日付から月を取得できます。
DATEADD(month,-1,) を使用して、日付を月単位で調整できます。
日付をテキスト形式で SQL Server に提示する場合は、常に YYYYMMDD の形式を使用する必要があります。

where MONTH(DATEADD(month,-1,'20110501') IN

これは、テーブルの列alldata.monthに 1 ~ 12 の月の数値が含まれていることを前提としています。

于 2012-10-05T07:43:32.837 に答える
1

DateAdd()パラメータ、月、および値としてメソッドを使用-1して、前の月を取得できます。

以下はあなたに与える

select DatePart(mm,DateAdd(m,-1,GetDate())) as PreviousMonth

クエリについては、次を試すことができます。

select company 
from alldata
where datepart(mm,dateadd(m,-1,Convert(DateTime, Convert(DateTime,'01.05.2011',104))))
IN (select month from alldata where SumNrSpot=0)
于 2012-10-05T07:42:30.137 に答える
0

私はそれをこのようにしました:

select company
from alldata
where MONTH(`Mon`) -1
IN
(select MONTH(Mon) from alldata where SumNrSpot=0)

とにかくありがとう、あなたの応答のいくつかは役に立ち、感謝されました。

于 2012-10-05T10:47:22.220 に答える
0

指定された日付から月を抽出し、-1 を追加します

select ( extract (month from now()) -1 ) as previous_month 
于 2012-10-05T07:45:36.033 に答える
0
Select
DATEPART(mm,(DATEADD(m,-1,CONVERT(DATETIME,'01.05.2011')))) AS PreviousMonth
IN 
(Select month from alldata where SumNrSpot=0)

「月」列が整数値であると仮定します

于 2012-10-05T07:55:23.663 に答える