したがって、私のクエリでは、さまざまな場所から結果をダンプする必要があります。これらの結果の中には、前に「<」または「>」記号が必要な場合があります。最終的に、このクエリは INTO OUTFILE を使用してエクスポートされますが、その部分は機能します。何が起こっているかというと、gtlt 値から結果値をパラメーターの結果値に連結しようとすると、常に壊れます... a、b、c、および x を追加したので、何がどこに表示されているかがわかります... 2番目の where ステートメントに関係していると確信していますが、わかりません。
とにかく....ここに私のコードのストライプダウンの例があります:
SELECT
'VAR 1',
'VAR 2',
'VAR 3'
UNION
(SELECT
CONCAT(if(result.parameter = '10', result.gtlt,'a '),COALESCE(sum(if(result.parameter = '10', result.result, NULL)),'-')) as 'VAR 1',
CONCAT(if(result.parameter = '61', result.gtlt,'b '),COALESCE(sum(if(result.parameter = '61', result.result, NULL)),'-')) as 'VAR 2',
CONCAT(if(result.parameter = '78', result.gtlt,'c '),COALESCE(sum(if(result.parameter = '78', result.result, NULL)),'-')) as 'VAR 3'
FROM (
SELECT
event.id,
event.end_date,
event_result.parameter,
event_result.result,
COALESCE(CAST(event_result.gtlt as CHAR), 'x') as gtlt,
event.tag
FROM event
Inner Join event_result ON event_result.tag = event.tag
Inner Join tblesdstations19 ON tblesdstations19.id = event.id
WHERE (event.id = '735' OR event.id = '845' OR event.id = '209') AND `event`.`end_date` >= '1998-01-13' AND `event`.`end_date` <= '2010-02-09') as result
WHERE result.parameter = '10' OR result.parameter = '61' OR result.parameter = '78' group by result.id, result.end_date, result.tag
order by
result.id ASC,
result.end_date DESC )
返されるもののサンプルを次に示します。
VAR 1 VAR 2 VAR 3
x17.8 b 9.49 c -
x25.8 b 9.21 c -
x17.5 b 29 c 0.36
x16.6 b 9.6 c 0.52
x26.2 b 7.4 c 0.49
x24.3 b 7.9 c 0.34
x27.5 b 9.9 c -
a - x7.9 c -
a - x8.2 c -
a - x5.7 c -
x16.8 b 2.16 c -
x22.2 b 1.84 c -
x26.2 b - c -
x22.7 b 0.67 c -
x18.5 b 19 c 0.15
x14 b 1.3 c 0.91
x19.5 b 12 c 0.38
a - x1.2 c -
x23.5 b 0.74 c 0.92
VAR 1 と 2 の選択と、VAR 3 で機能する場所を削除すると...
SELECT 'VAR 3'
UNION
(SELECT
CONCAT(if(result.parameter = '78', result.gtlt,'c '),COALESCE(sum(if(result.parameter = '78', result.result, NULL)),'-')) as 'VAR 3'
FROM (
SELECT
event.id,
event.end_date,
event_result.parameter,
event_result.result,
COALESCE(CAST(event_result.gtlt as CHAR), 'x') as gtlt,
event.tag
FROM event
Inner Join event_result ON event_result.tag = event.tag
Inner Join tblesdstations19 ON tblesdstations19.id = event.id
WHERE (event.id = '735' OR event.id = '845' OR event.id = '209') AND `event`.`end_date` >= '1998-01-13' AND `event`.`end_date` <= '2010-02-09') as result
WHERE result.parameter = '78' group by result.id, result.end_date, result.tag
order by
result.id ASC,
result.end_date DESC )
私に与えます...
VAR 3
x0.36
>0.52
>0.49
>0.34
x0.15
>0.91
x0.38
x0.92
>0.48
編集: パラメータを GROUPED BY リストに追加すると、次の結果が得られます。
17.8 - -
- 9.49 -
25.8 - -
- 9.21 -
17.5 - -
- 29 -
- - 0.36
16.6 - -
- 9.6 -
- - >0.52
26.2 - -
etc...
"<" ">" 記号が表示されますが、必要な行に値が表示されません。