Получите пропущенные месяцы равными нулю (0) и заполните их в datatable
ПРИВЕТ Вот мой sql-запрос
select Month,count(id) transactions from `tbl_test` where id=" + id + " and Month is not NULL and Year = " + Convert.ToInt32(currentYear) + " group by Month;
Месяц-это varchar, а id-int, я использую mysql.
Заполнение его в DataTable
DataTable dt = new DataTable(); MySqlDataAdapter da = new MySqlDataAdapter(cmd); da.Fill(dt);
Результат, который я получаю, похож на
Month transactions May 122 December 178
И результат, который я хочу, такой
Month transactions January 0 February 0 March 0 April 0 May 122 June 0 July 0 August 0 September 0 October 0 November 0 December 178
Пожалуйста, Помогите
Что я уже пробовал:
Я создал еще одну таблицу со всеми месяцами и пытаюсь присоединиться к 2. Но бесполезно (я думаю, из-за предложения where в SQL-операторе). Пожалуйста, помогите
Что-то вроде этого:
select Month, ifnull(count(id), 0) transactions from `tbl_test` inner join my_month_table as m on m.month_key = `tbl_test`.month_key where id=" + id + " and Month is not NULL and Year = " + Convert.ToInt32(currentYear) + " group by Month;
Цитата:PS: Я бы предпочел не менять запрос (1-й без соединения) и не играть с кодировкой переднего плана (C#), чтобы вставить его в DataTable.
Tomas Takac
Я в замешательстве. Итак, вы решили ее с помощью этого дополнительного соединения, но вам не нравится это решение? Так что же вы пытались решить на своем прикладном уровне?