私はシフト スケジューリング ソリューションに取り組んでおり、あなたの助けが必要です。データベース レイアウトは次のようになります。
1 か月のすべてのスケジュールを取得するクエリは次のようになります。
SELECT
ca.date,
ss.num,
ma.name
FROM dp_dienstplan AS dp
JOIN ma_mitarbeiter AS ma ON ma.id=dp.dp_mitarbeiter_id
JOIN ss_schienen AS ss ON ss.id=dp.dp_schienen_id
JOIN sc_schicht AS sc ON sc.id=ss.ss_schicht_id
RIGHT JOIN calendar AS ca ON ca.date=dp.dp_datum
WHERE
month(ca.date)=9 AND year(ca.date)=2013
カレンダー テーブルは、スケジュールが保留されていない結果で偶数日を取得するための翌年の日付を含むヘルパー テーブルです。
クエリの結果は次のようになります。
date |num |name
----------------------------
2013-09-01 NULL NULL
2013-09-02 2 foo
2013-09-02 3 bar
2013-09-03 2 uncle
2013-09-03 1 mac
2013-09-03 7 super
2013-09-04 NULL NULL
2013-09-04 2 master
.
.
.
2013-09-30 NULL NULL
私が夢見ている結果は次のようになります。
date |1num |1name |2num |2name |3num |3name. . .|7name|7num
-----------------------------------------------------------------
2013-09-01 NULL NULL NULL NULL NULL NULL . . . NULL NULL
2013-09-02 NULL NULL 2 foo 3 bar . . . NULL NULL
2013-09-03 1 mac 2 uncle NULL NULL . . . 7 super
2013-09-04 NULL NULL 2 master NULL NULL . . . NULL NULL
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
2013-09-30 NULL NULL NULL NULL NULL NULL . . . NULL NULL
名前と「num」値の順序で、1 日につき 1 行が必要です。私が話していることを理解していただければ幸いです。英語で申し訳ありません。
1 から 200 までの値を含む別のヘルパー テーブルがあり、これを右結合しようとしましたが、成功しませんでした。
事前に感謝します。これが重複した質問である場合は申し訳ありません。おそらく、何を検索すればよいかわからなかったため、Googleまたはフォーラムで結果が見つかりませんでした。
乾杯、ラルフ。