2015-07-21 4 views
1

У меня есть следующий запрос Mysql, который отлично работает отдельно от части Sum. В результате я получаю то, что Sum_IO и Sum_NIO вычисляется по всей таблице, если часть критериевКритерии Mysql, в которых статья не сообщается должным образом

Cast(oee_main_interim.TS As date) = CurDate()

игнорируется. То, что я хочу, это запрос будет только просуммировать значения, которые подпадают под сегодняшнюю дату (CurDate()):

Select 
    oee_main_interim.NAME As Machine_ID, 
    oee_machinenames.Name As Name, 
    voee_mach_shifts.curr_Shift As curr_Shift, 
    Sum((oee_main_interim.Left_IO + oee_main_interim.Right_IO)) As Sum_IO, 
    Sum((oee_main_interim.Left_NIO + oee_main_interim.Right_NIO)) As Sum_NIO 
From 
    (oee_main_interim Join 
    voee_mach_shifts On voee_mach_shifts.ID = oee_main_interim.NAME) Join 
    oee_machinenames On oee_machinenames.ID = oee_main_interim.NAME 
Where 
    Cast(oee_main_interim.TS As date) = CurDate() And 
    oee_main_interim.Shift In (Select 
    voee_mach_shifts.curr_Shift 
    From 
    voee_mach_shifts Join 
    oee_machinenames On oee_machinenames.ID = voee_mach_shifts.ID 
    Group By 
    voee_mach_shifts.curr_Shift, oee_machinenames.ID 
    Order By 
    oee_machinenames.ID) 
Group By 
    oee_main_interim.NAME, oee_machinenames.Name, voee_mach_shifts.curr_Shift 
Order By 
    oee_system.oee_main_interim.NAME 
+0

Какой тип 'oee_main_interim.TS' – vhu

+0

это отметка времени – elstiv

ответ

0

Вы можете использовать DATE(yourfield)=CURDATE(), чтобы соответствовать только дата часть метки времени или даты и времени поля.

+0

Я попытался это изначально, но phpmyadmin изменил ее, включив в нее' cast' – elstiv