Mike
Вот что он возвращает: посмотри в конце, как его отрезать - странно. Что бы это могло быть?
Я также не понял последнюю часть вашего комментария - Последний блок;
Create and execute a prepared statement from the dynamic SQL:
PREPARE stmt FROM @sql;
EXECUTE stmt;
+---------+---------+---------+---------+
| offer_1 | offer_2 | offer_3 | offer_4 |
+---------+---------+---------+---------+
| 3 | 2 | 1 | 1 |
+---------+---------+---------+---------+
DEALLOCATE PREPARE stmt;
Вот новый запрос:
SELECT CONCAT(
'SELECT',
GROUP_CONCAT(
' SUM(IF(OFFER_ID = ', offer_id,
', 1, 0)) AS offer_', offer_id),
' FROM track;')
INTO @sql
FROM (SELECT DISTINCT ID as OFFER_ID from offer where `STATUS`=1) AS track;
select @sql;
Вот вывод:
ВЫБРАТЬ SUM (ЕСЛИ (OFFER_ID = 178, 1, 0)) AS offer_178, SUM (ЕСЛИ (OFFER_ID = 234, 1, 0)) AS offer_234, SUM (IF (OFFER_ID = 206, 1, 0)) AS offer_206, SUM (IF (OFFER_ID = 213, 1, 0)) AS offer_213, SUM (IF (OFFER_ID = 229, 1, 0)) AS offer_229, SUM (IF (OFFER_ID = 220, 1, 0)) AS offer_220, SUM (IF (OFFER_ID = 221, 1, 0)) AS offer_221, SUM (IF (OFFER_ID = 222, 1, 0)) AS offer_222, SUM (IF (OFFER_ID = 225, 1, 0)) AS offer_225, SUM ( IF (OFFER_ID = 226, 1, 0)) AS offer_226, SUM (IF (OFFER_ID = 257, 1, 0)) AS offer_257, SUM (IF (OFFER_ID = 259, 1, 0)) AS offer_259, SUM (IF (( OFFER_ID = 258, 1, 0)) AS offer_258, SUM (ЕСЛИ (OFFER_ID = 260, 1, 0)) AS offer_260, SUM (IF (OFFER_ID = 228, 1, 0)) AS offer_228, SUM (IF (OFFER_ID = 230, 1, 0)) AS offer_230, SUM (IF (OFFER_ID = 232, 1, 0)) AS offer_232, SUM (IF (OFFER_ID = 233, 1, 0)) AS offer_233, SUM (IF (OFFER_ID = 239, 1, 0)) AS offer_239, SUM (IF (OFFER_ID = 240, 1, 0)) AS offer_240, SUM (IF (OFFER_ID = 241, 1, 0)) AS offer_241, SUM (IF (OFFER_ID = 242, 1, 0)) AS offer_242, SUM (IF (OFFER_ID = 2) 43, 1, 0)) AS offer_243, SUM (ЕСЛИ (ВЫКЛЮЧЕНО ИЗ ТРАКАЦИИ;
)