我在做票務預訂系統在mysql中根據日期,目的地和返回日期查詢票務查詢
讓我試着解釋我需要什麼。我有包含旅行日期,人數,起點,終點,票證類型和退貨日期的表格。門票可以是單程,每日或回程車票(買家可以選擇返程日期)。
這裏是問題,如果5人購買票21.12.2013可以說,目的地A到B,但他們都購買每日票,這意味着他們將全部返回當天,他們的目的地將B到A返回的時間。
還有一人買車票2013年12月21日但從目的地B到A,我需要的人的總和爲6
我也產生在我的車票條形碼的一些,所以如果買家每天選擇或回程票,我需要兩個查詢,一個用於計算開始日期的人數(預訂),第二個用於返回日期。
所以基本上表看起來像這樣
id | date | persons | paid | destinationA | destinationB | typeofticket |return_date --+----------+----------+------+--------------+--------------+--------------+---------- 1 |21.12.2013| 5 | yes | 1 | 2 | daily |21.12.2013 2 |21.12.2013| 1 | yes | 2 | 1 | one-way |21.12.2013 2 |21.12.2013| 2 | no | 2 | 1 | one-way |21.12.2013
因此,任何建議,我應該我的查詢看起來像?我有這樣的事情(這顯然是錯誤的):
$query1 = "
SELECT date, SUM(persons) totalpersons FROM table_name
WHERE date='$date' AND (destinationA ='$destinationA') OR
(destinationA ='$destinationB' AND typeofticket = 'Daily')
";
$query2 = "
SELECT date, SUM(persons) totalpersons FROM table_name
WHERE date='$return_date' AND (destinationA ='$destinationA') OR
(destinationB ='$destinationA' AND typeofticket = 'Daily')
";
如果一些關於名稱的字符串是不正確的,這是因爲我是翻譯的字段名稱frommy語言爲英語這個崗位:(
我只是尋找一些提示,如何接近這個查詢的...提前感謝。
這是什麼工作atm,但我100%肯定我仍然缺少的東西:))是的,我需要查詢只看付費門票:
$query_b1 = "
SELECT date, SUM(persons) totalpersons FROM table_name
WHERE date='$date' AND paid='yes' AND (destA='$destA' AND destB='$destB' OR
(destB='$destA' AND typeofticket ='Daily')
)";
您可以考慮爲旅程單獨建模一張票。即每張票可以有一個或多個相關旅程。然後可以使用一個簡單的查詢組來獲取您需要的計數。 –
是的,我也在考慮這一點,但必須有一些查詢將以這種方式工作,所以我不必重寫代碼。 – Tomek
你可以發佈一些更多的樣本數據和你的預期結果嗎?從你的樣本數據我看到8人從那天的2日到1日 –