2つの別々のクエリを1つにマージしようとしています。私はjaspersoftのレポートスタジオにそれらを使用しています。最初のクエリの出力は、指定された日付範囲内のテーブル内のエントリに関する詳細です。 2番目のクエリの出力には、最初のクエリの出力量の一部と、独自のパラメータが含まれています。彼らは別々に別々に働いています。別々の2つのSQLクエリを結合する
このように1つのクエリにこれらを組み合わせることが可能かどうかはわかりません。
クエリ1:
SELECT
`alarminfo`.`condition_id`,
`alarminfo`.`landscape_h`,
`landscape`.`domain_name`,
`model`.`model_name`,
`alarminfo`.`set_time`,
`alarminfo`.`clear_time` ,
`alarminfo`.`alarm_key`,
`alarmtitle`.`title`,
`alarminfo`.`ack_time`,
`alarminfo`.`set_troubleticket_id`,
`alarminfo`.`first_assigned_time`,
`alarmcondition`.`condition_name`,
TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.clear_time) seconds_to_clear,
TIMESTAMPDIFF(SECOND,alarminfo.set_time ,'2017-09-01 00:00:00.0') alerttime
FROM alarminfo
INNER JOIN landscape ON (alarminfo.landscape_h=landscape.landscape_h)
INNER JOIN alarmtitle ON (alarminfo.alarm_title_id=alarmtitle.alarm_title_id)
INNER JOIN model ON (alarminfo.model_key=model.model_key)
INNER JOIN alarmcondition on (alarminfo.condition_id=alarmcondition.condition_id)
where
((alarminfo.set_time>='2017-09-01 00:00:00.0' AND alarminfo.set_time<'2017-09-30 23:59:59.0') AND
(alarminfo.clear_time>='2017-09-01 00:00:00.0' AND alarminfo.clear_time<'2017-09-30 23:59:59.0') AND
(alarmcondition.condition_name IN ('Critical', 'Major', 'Minor')) AND
(TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.ack_time)>60*15)
)
order by `alarminfo`.`set_troubleticket_id`DESC , `alarminfo`.`ack_time` , `alarminfo`.`set_time` , `alarminfo`.`landscape_h`, `alarminfo`.`condition_id`
クエリ2:
select
count(*) 'Total alarms',
sum(case when ack_time is not null then 1 else 0 end) as 'total acknowledged',
sum(case when (TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.ack_time)<60*15) then 1 else 0 end) as 'Total acknowledged within 15min',
sum(case when (TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.ack_time)>60*15) then 1 else 0 end) as 'Total acknowledged after 15min'
FROM alarminfo
where
alarminfo.set_time>='2017-09-01 00:00:00.0' AND alarminfo.set_time<'2017-09-30 23:59:59.0'
これは私がそれらを一緒にマージしようとしている方法です:
SELECT
`alarminfo`.`condition_id`,
`alarminfo`.`landscape_h`,
`landscape`.`domain_name`,
`model`.`model_name`,
`alarminfo`.`set_time`,
`alarminfo`.`clear_time` ,
`alarminfo`.`alarm_key`,
`alarmtitle`.`title`,
`alarminfo`.`ack_time`,
`alarminfo`.`set_troubleticket_id`,
`alarminfo`.`first_assigned_time`,
`alarmcondition`.`condition_name`,
TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.clear_time) seconds_to_clear,
TIMESTAMPDIFF(SECOND,alarminfo.set_time ,'2017-09-01 00:00:00.0') alerttime
FROM alarminfo
INNER JOIN landscape ON (alarminfo.landscape_h=landscape.landscape_h)
INNER JOIN alarmtitle ON (alarminfo.alarm_title_id=alarmtitle.alarm_title_id)
INNER JOIN model ON (alarminfo.model_key=model.model_key)
INNER JOIN alarmcondition on (alarminfo.condition_id=alarmcondition.condition_id)
where
((alarminfo.set_time>='2017-09-01 00:00:00.0' AND alarminfo.set_time<'2017-09-30 23:59:59.0') AND
(alarminfo.clear_time>='2017-09-01 00:00:00.0' AND alarminfo.clear_time<'2017-09-30 23:59:59.0') AND
(alarmcondition.condition_name IN ('Critical', 'Major', 'Minor')) AND
(TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.ack_time)>60*15)
)
count(*) 'Total alarms',
sum(case when ack_time is not null then 1 else 0 end) as 'total acknowledged',
sum(case when (TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.ack_time)<60*15) then 1 else 0 end) as 'Total acknowledged within 15min',
sum(case when (TIMESTAMPDIFF(SECOND,alarminfo.set_time ,alarminfo.ack_time)>60*15) then 1 else 0 end) as 'Total acknowledged after 15min'
FROM alarminfo
where
alarminfo.set_time>='2017-09-01 00:00:00.0' AND alarminfo.set_time<'2017-09-30 23:59:59.0'
)
order by `alarminfo`.`set_troubleticket_id`DESC , `alarminfo`.`ack_time` , `alarminfo`.`set_time` , `alarminfo`.`landscape_h`, `alarminfo`.`condition_id`
これは、残念ながら機能していません。誰かがそれらをマージする方法についてアイデアを持っていますか?
は、あなたのケースのためのサンプル入力と期待される出力を表示してくださいRとして
condition_id
)。 –
レポート用語で実際に何を解決しようとしていますか? – Narcis
最初の出力は大きいクエリです 秒は小さなクエリです。 これはmysqlクエリブラウザから出力されたものです。クエリは、特定のデータのみを使用するjaspersoftで使用されます。 秒は実際には特定のアラームの合計です。私は、これら2クエリのは、一緒に行くようにする方法を思っていた [ここに画像の説明を入力] [1] [ここに画像の説明を入力します] [2] [1]します。https://i.stack。 imgur.com/gjIQM.png [2]:https://i.stack.imgur.com/oG7QJ.png – CaPsLoCkEr