SELECT *,
(SELECT
SUM(IF(T2.CostNormal_Unit&&T2.CostNormal_SecUnit&&T2.CostNormal_Cost,
((T2.CostNormal_Unit*T2.CostNormal_Cost)*T2.CostNormal_SecUnit),
IF(T2.CostNormal_Unit&&T2.CostNormal_Cost,(T2.CostNormal_Unit*T2.CostNormal_Cost),
IF(T2.CostNormal_SecUnit&&T2.CostNormal_Cost,(T2.CostNormal_SecUnit*T2.CostNormal_Cost),
T2.CostNormal_Cost)
)
)) AS Total
FROM budget_project_cost_mapsubactivity AS T1
INNER JOIN budget_project_cost_subactivity_normal AS T2
ON T1.MapActCost_Id = T2.MapActCost_Id AND T2.CostNormal_Phrase = 1
WHERE T1.SubActivity_Id IN(SELECT A.SubActivity_Id FROM budget_project_activity_sub AS A INNER JOIN budget_project_activity AS B ON A.Activity_Id = B.Activity_Id WHERE B.Project_Id IN (T1.Project_Id))) AS SumCost1,
(SELECT
SUM(IF(T2.CostNormal_Unit&&T2.CostNormal_SecUnit&&T2.CostNormal_Cost,
((T2.CostNormal_Unit*T2.CostNormal_Cost)*T2.CostNormal_SecUnit),
IF(T2.CostNormal_Unit&&T2.CostNormal_Cost,(T2.CostNormal_Unit*T2.CostNormal_Cost),
IF(T2.CostNormal_SecUnit&&T2.CostNormal_Cost,(T2.CostNormal_SecUnit*T2.CostNormal_Cost),
T2.CostNormal_Cost)
)
)) AS Total
FROM budget_project_cost_mapsubactivity AS T1
INNER JOIN budget_project_cost_subactivity_normal AS T2
ON T1.MapActCost_Id = T2.MapActCost_Id AND T2.CostNormal_Phrase = 2
WHERE T1.SubActivity_Id IN(SELECT A.SubActivity_Id FROM budget_project_activity_sub AS A INNER JOIN budget_project_activity AS B ON A.Activity_Id = B.Activity_Id WHERE B.Project_Id IN (T1.Project_Id))) AS SumCost2,
(SELECT
SUM(IF(T2.CostNormal_Unit&&T2.CostNormal_SecUnit&&T2.CostNormal_Cost,
((T2.CostNormal_Unit*T2.CostNormal_Cost)*T2.CostNormal_SecUnit),
IF(T2.CostNormal_Unit&&T2.CostNormal_Cost,(T2.CostNormal_Unit*T2.CostNormal_Cost),
IF(T2.CostNormal_SecUnit&&T2.CostNormal_Cost,(T2.CostNormal_SecUnit*T2.CostNormal_Cost),
T2.CostNormal_Cost)
)
)) AS Total
FROM budget_project_cost_mapsubactivity AS T1
INNER JOIN budget_project_cost_subactivity_normal AS T2
ON T1.MapActCost_Id = T2.MapActCost_Id AND T2.CostNormal_Phrase = 3
WHERE T1.SubActivity_Id IN(SELECT A.SubActivity_Id FROM budget_project_activity_sub AS A INNER JOIN budget_project_activity AS B ON A.Activity_Id = B.Activity_Id WHERE B.Project_Id IN (T1.Project_Id))) AS SumCost3,
(SELECT CONCAT(FirstName,' ',LastName) FROM tbluser WHERE UserId = T1.Create_by) AS Author,
PERIOD_DIFF(EXTRACT(YEAR_MONTH FROM Stop),EXTRACT(YEAR_MONTH FROM Start))+ 1 AS Period
FROM(SELECT B.*,
(SELECT S.Status_Description FROM budget_init_status AS S WHERE LOWER(B.Project_Status) = LOWER(S.Status_Key)) AS StatusDescription,
B.Project_Start_Year AS StartYear,
B.Project_Start_Month AS StartMonth,
B.Project_End_Month AS StopMonth,
STR_TO_DATE(CONCAT((B.Project_Start_Year - 543),',',B.Project_Start_Month,',','1'), '%Y,%m,%d') AS Start,
STR_TO_DATE(CONCAT((B.Project_End_Year - 543),',',B.Project_End_Month,',','1'), '%Y,%m,%d') AS Stop,
BB.BPI_Name,
IF(BBB.ShortName,CONCAT(BBB.Organize,' ','(',BBB.ShortName,')'),BBB.Organize) AS OrgName,
BBB.ShortName
FROM budget_project AS B
INNER JOIN budget_plan_item AS BB ON BB.BPI_Id = B.BPI_Id
LEFT JOIN tblorganize AS BBB ON BBB.OrganizeId = B.OrganizeId
) AS T1
ปัญหามีอยู่ว่าQueryนี้พอใส่ในเครื่องผมมันแสดงผลลัพท์แต่พออัพขึ้น server มันกลับไม่แสดง
พอลองcopy มันมา run ข้างนอกในdatabaseปรากฎว่าใช้เวลานานพอสมควร เป็นนาทีได้ พอลอง set ใน php.ini
ให้เวลา execute นานขึ้นก็ยังไม่หาย ไม่ทราบควรทำไงดีครับ
เพิ่มเติมอีกนิดนึงนะครับ ถึงแม้ว่าคุณจะไปปรับแก้ใน mysql หรือว่า php.ini ให้สามารถรันคิวรี่นี้ผ่านแล้วลองนึกดูนะครับว่านึ่ขนาดคุณเข้ามาดึงข้อมูลแค่คนเดียว ถ้าเกิดเปิดใช้งานจริงยูสเซอร์เข้ามาใช้งานหน้านี้พร้อมๆ กันเยอะๆ ที่นี้ละตัว DB Server ของคุณจะทำงานหนัก