Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
ユニオンクエリの表記を教えてください。
投稿日時: 21/03/03 22:51:59
投稿者: myzkktht

いつも大変お世話になっております。
 
固定長の以下のデータをACCESSに取り込み、クエリでレイアウトを↓のように
変更して出力をしようと思っています。
※実際は固定長のデータです。
※SAMPLE_Qには以下と同様のクエリーを作成してあります。
 
出勤、退勤、休憩、戻りでユニオンクエリを組んで、社員番号と打刻を昇順で
並べて最終的に固定長でエクスポートしようと思っているのですが、SQLはまだ
かじったことしかなく、どのように記載すればいいかわからず困っています。
途中までは頑張ってみたもののわからなくなってしまいました。
大変恐縮ですがぜひご教授のほど、よろしくお願いいたします。
 
日付 |出勤|退勤|休憩1|戻り1|休憩2|戻り2|休憩3|戻り3|社員番号
20200303|0900|900 |1200 |1300 |1410 |1420 |1510 |1520 |12345678
 
↓ [打 出勤:001 退勤:004 休憩:003 戻り:004]
 
日付   時間 打 社員番号
20200303|0900|001|12345678
20200303|1200|003|12345678
20200303|1300|004|12345678
20200303|1410|003|12345678
20200303|1420|004|12345678
20200303|1510|003|12345678
20200303|1520|004|12345678
20200303|1900|002|12345678
 
SELECT UQ.[日付], UQ.[時間], UQ.[打],UQ.[社員番号]
FROM (SELECT [SAMPLE_Q].[社員番号],
             [SAMPLE_Q].[日付],
             [SAMPLE_Q].[打],
             "001" AS [出勤],
             "002" AS [退勤],
       "003" AS [休憩1],
       "004" AS [戻り1],

回答
投稿日時: 21/03/04 09:40:56
投稿者: Suzu

引用:
↓ [打 出勤:001 退勤:004 休憩:003 戻り:004]

 
退勤 は 002 だとして、
 
 
SELECT UQ.*
FROM (
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[出勤] AS 時間, "001" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[退勤] AS 時間, "002" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[休憩1] AS 時間, "003" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[戻り1] AS 時間, "004" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[休憩2] AS 時間, "003" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[戻り2] AS 時間, "004" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[休憩3] AS 時間, "003" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    UNION
    SELECT [SAMPLE_Q].[日付], [SAMPLE_Q].[戻り3] AS 時間, "004" AS 打, [SAMPLE_Q].[社員番号] FROM [SAMPLE_Q]
    ) AS UQ
ORDER BY [UQ].[社員番号], [UQ].[日付], [UQ].[時間]
 
こういう事でしょうか。
 
ただし
引用:
※SAMPLE_Qには以下と同様のクエリーを作成してあります。
との事ですので
クエリや、リンクテーブル を FROM句に指定し クエリ(SQL)を実施する場合、実行できない事があります。

投稿日時: 21/03/04 21:46:30
投稿者: myzkktht

ありがとうございました。
無事にできました。