MySQL 5.1
Tjena, jag vill göra en sortering av kunder.
Vid misslyckat kundkontaktförsök sparas vad anledningen var till ej kontakt. t.ex. Mobilsvar, Ej svar, Mobil avslagen
Kan jag i sorteringen räkna antalet rader på en sub-query liknande följande?
CASE WHEN (
SELECT COUNT(alternativ) AS cnt
FROM (
SELECT COUNT(alternativ), alternativ
FROM svar
GROUP BY alternativ
) AS dataTable
) = 0
THEN 10000 ELSE cnt END
Denna fråga fungerar inte men ni kanske förstå hur jag tänker
Löste problemet på följande sätt istället men lösningar bättre än min är självklart välkomma
SELECT t1.id,
t2.datum,
(SELECT CASE WHEN COUNT(dataTable.alternativ) = 0
THEN 10000
ELSE COUNT(dataTable.alternativ)
END
FROM (SELECT COUNT(alternativ), alternativ
FROM table2
GROUP BY alternativ
) AS dataTable
) AS cnt
FROM table1 t1
LEFT JOIN table2 t2 ON t2.id = t1.id
WHERE t2.id IS NULL
ORDER BY CASE WHEN t2.datum IS NULL THEN 1 ELSE 0 END, t2.datum, cnt DESC
Var lite snabb i bedömningen, det fungerade inte alls som jag tänkt. Dessutom stod det fel i kravspesifikationen.
Rätt kravspecifikation skall vara:
* Vid misslyckat kundkontaktförsök sparas vad anledningen var till ej kontakt. t.ex. Mobilsvar, Ej svar, Mobil avslagen
* Vid val av ringkort skall vi bedöma hur intressant kunden verkar vara.
* Skulle svarsalternativet ändras bedöms kunden som mer intressant än en kund som har ett konsekvent svarsalternativ.
Min ide om att räkna rader fungerar inte riktigt i det här fallet men man skulle kunna använda LIMIT 2 och GROUP BY och räkna de raderna?
Eller har ni någon annan ide?