我正在研究班次排班解決方案,需要您的幫助。 數據庫佈局看起來是這樣的:database-layoutmySQL複雜連接,甚至數據樞軸
我的查詢來獲取所有計劃一個月是這樣的:
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到200的值,我試圖正確加入,但我沒有成功。
在此先感謝,抱歉,如果這是一個重複的問題,我沒有找到任何結果,谷歌或在論壇上,也許是因爲我不知道要搜索什麼。
乾杯,拉爾夫。
預先知道所有的數字'num'嗎? – peterm