2016-08-04 17 views
0

テーブル内のチケット全体を更新するクエリがあります。 値を更新する必要があるチケットのみを更新し、すべての行を更新しないようにします。例: slabreachdaysがすでに10の場合、新しい値も10になります。更新しないでください。 これは私の更新クエリです。値がまだ更新されていない値のSQL更新のみ

update ticket 
set TICKET.slabreachdays = 
FLOOR(((DAYS(TICKET.creationdate) - DAYS(current timestamp)+10) 
* 86400 + (MIDNIGHT_SECONDS(TICKET.creationdate) - 
MIDNIGHT_SECONDS(current timestamp)))/86400.0) 
where TICKET.VENDOR like 'ABC' 
and TICKET.STATUS NOT IN('CANCELLED','CLOSED') 

これは、更新が必要なチケットのみを選択する選択クエリです。これは私が更新クエリに変換する必要があるクエリ

select * from (
    select ticketid,slabreachdays, 
    FLOOR(((DAYS(TICKET.creationdate) - DAYS(current timestamp)+10) * 86400 + (MIDNIGHT_SECONDS(TICKET.creationdate) - MIDNIGHT_SECONDS(current timestamp)))/86400.0) 
    as newValue 
    from ticket 
    where TICKET.MLOUTSOURCEVENDOR like 'ABC' and TICKET.STATUS NOT IN('CANCELLED','CLOSED')) 
where SLABREACHDAYS != newValue 

答えて

0

それ

....そしてslabeachdaysが<> Allerの計算表現

0

この

update ticket 
set TICKET.slabreachdays = 
FLOOR(((DAYS(TICKET.creationdate) - DAYS(current timestamp)+10) 
* 86400 + (MIDNIGHT_SECONDS(TICKET.creationdate) - 
MIDNIGHT_SECONDS(current timestamp)))/86400.0) 
where TICKET.VENDOR like 'ABC' 
and TICKET.STATUS NOT IN('CANCELLED','CLOSED') and 
TICKET.slabreachdays <> 
(FLOOR(((DAYS(TICKET.creationdate) - DAYS(current timestamp)+10) 
* 86400 + (MIDNIGHT_SECONDS(TICKET.creationdate) - 
MIDNIGHT_SECONDS(current timestamp)))/86400.0)) 
を試してみ
関連する問題