他のテーブルより約1か月前の日付のテーブルがあります。
たとえば、1つのテーブルは3月31日の第1四半期の終わりを報告し、もう1つのテーブルは2月28日(または29日)の第1四半期の終わりを報告しますが、2つの日付がまったく同じであるかどうかに関係なく、日付でそれらを結合することはまったく問題ありません。
何か提案をお願いします。
ありがとう
他のテーブルより約1か月前の日付のテーブルがあります。
たとえば、1つのテーブルは3月31日の第1四半期の終わりを報告し、もう1つのテーブルは2月28日(または29日)の第1四半期の終わりを報告しますが、2つの日付がまったく同じであるかどうかに関係なく、日付でそれらを結合することはまったく問題ありません。
何か提案をお願いします。
ありがとう
DateDiff(dd, Date1, Date2) < x で参加できます
または、より正確に取得するには
select endOfMonth.*, begOfMonth.*
from endOfMonth join begOfMonth
on DATEADD (dd , 1 , endOfMonth.date ) = begOfMonth.Date
select val1 From Table1 T1 inner Join Table2 t2 on MONTH(T1.date1) = MONTH(t2.date1)
And YEAR(T1.date1) = YEAR(t2.date1)
私があなたを正しく理解していて、それらのテーブルに同じ数の列がある場合UNION
は、SQLクエリで使用する必要があります. 詳細については、 http UNION
: //en.wikipedia.org/wiki/Set_operations_%28SQL%29を参照してください。
1 つの方法は、任意の日付を返すDATEPART() 関数を使用することです。quarter
その後、返された四半期に参加できます。
サンプル SQL:
SELECT *
FROM
(
SELECT DATEPART(QUARTER,date_column) AS t1_quarter
FROM table1
UNION ALL
SELECT DATEPART(QUARTER,date_column) AS t2_quarter
FROM table2
) AS temp
WHERE temp.t1_quarter = temp.t2_quarter;
必要に応じて他のフィールド (おそらく ID フィールド) を内部 SELECTS に入れます。
ON 句は、一致する年と四半期を調べることができます。
ON TABLE1.YEAR([1st quarter end ]) = TABLE2.YEAR([1st quarter end ])
AND TABLE1.QUARTER([1st quarter end ]) = TABLE2.QUARTER([1st quarter end ])