0
「duration_in_queue」にNULL以外の値が設定されるためには、次のSQLを2回実行する必要があります。MySQLの変数はすぐに利用できません
SQL変数が設定または保存されていないと仮定しますか?私は時間の無駄に解決策を見つけようと、ここで誰かが:)
SELECT
DATE(pm.rstdtime) AS cntldate,
sh.sd_no,
sh.work_group,
ROUND(
IF (
@sd_id = sh.sd_no,
(
TIMESTAMPDIFF(
SECOND,
@dt,
sh.data_entry_dtime
)/86400
) * 86400 + LEAST(0, @dt := sh.data_entry_dtime),
NULL + LEAST(0, @sd_id := sh.sd_no) + (@dt := sh.data_entry_dtime)
)
) AS duration_in_queue
FROM
p_master pm
LEFT JOIN s_history sh ON pm.sd_no = sh.sd_no,
(SELECT(@sd_id := 0)) AS a
WHERE
sh.log_text IN (
'Created',
'Dispatched',
'Restored'
)
AND CONVERT_TZ(
sh.data_entry_dtime,
'GMT',
'Australia/NSW'
) <= pm.rstdtime
ORDER BY
sh.sd_no,
sh.data_entry_dtime,
sh.log_text
LIMIT 10
任意の助けを助けることができることを期待してのためにそれにされている
をいただければ幸いです。
ありがとうございました。
こんにちはruakh、私はそれを読んだが、 "(SELECT(@ sd_id:= 0))as" @変数を設定していません。私はまた、SELECT * FROM(上記のクエリ)を入れようとしましたが、それは事を変更しませんでした:( – mybigman
@mybigman: '@sd_id:= 0'の唯一の保証については、' '0''と' ' )は、同じデータベース接続を使用して実行する次のSQLクエリの前に '@ sd_id'を' 0'に設定することになります。特に、 '@ sd_id'を' 0'に設定する保証はありませんこのクエリの実行中に予測可能なポイント。 – ruakh