Проблема GROUP BY, когда SELECT для dataGridView из 2 таблиц

С небольшой помощью я сделал это дваQUERY, Я разместил фотографии, чтобы вы могли видеть это вgreen squares пустые значения, которые я хотел бы видеть и вred squares это значения, которые я не хотел бы отображать. переменнаяvyberradek вставляет значения для 'подраздел» этоINT в БД, но я пропускаю это.string

Итак, я упрощу: теперь я могу показать все или немного, не могли бы вы помочь мне, как отобразить правильные записи?

Это первоеquery Является ли это:

string sQuery = string.Format("SELECT zajsluz.akce,zajsluz.text,klisluz.pocet,klisluz.subkey,zajsluz.ID FROM zajsluz LEFT JOIN klisluz ON zajsluz.ID=klisluz.IDzajsluz WHERE zajsluz.akce= '{0}'  GROUP BY klisluz.subkey,zajsluz.akce,zajsluz.text,klisluz.pocet,zajsluz.ID", sZakce);

Вот что делает второй:query

 string sQuery = string.Format("SELECT zajsluz.akce,zajsluz.text,klisluz.pocet,klisluz.subkey,zajsluz.ID FROM zajsluz LEFT JOIN klisluz ON zajsluz.ID=klisluz.IDzajsluz WHERE zajsluz.akce= '{0}' and klisluz.subkey ='" + vyberradek + "' GROUP BY klisluz.subkey,zajsluz.akce,zajsluz.text,klisluz.pocet,zajsluz.ID", sZakce);

Итак, как вы можете видеть, я также хотел бы отображать пустые. Я думаю, что вам может понадобиться также код, который проверяет флажки здесь:

 for (int i = 0; i < dtg_ksluzby.Rows.Count; i++)
            {
                var row = dtg_ksluzby.Rows[i];
                int id = (int)row.Cells["ID"].Value;

                using (var novyprikaz3 = new SqlCommand("SELECT * from klisluz WHERE subkey='" + vyberradek + "'AND IDzajsluz=" + id, spojeni))
                {

                    spojeni.Open();
                    SqlDataReader precti3 = novyprikaz3.ExecuteReader();
                    if (precti3.HasRows)
                    {
                        row.Cells[5].Value = true;
                    }
                    spojeni.Close();
                }
            }

Ребята, подскажите, пожалуйста, какquery Похоже выбрать даже не проверенное значение (которого нет в таблице klisluz) и проверенные?

Как я вижу, никто не отвечает так хорошо, позвольте мне привести один простой пример: когда я создаю клиента, я проверяю, например, 3 из 10 флажков. Таким образом, он выбирает 3 строки (и те, которые он добавляет в таблицу klisluz). И у меня есть эти два,queriesFirst query показывает установленный флажок от других клиентов, но также и не отмеченные для этого клиента. Он просто показывает все, что находится в базе данных, поэтому он показывает строки с проверенными вещами других клиентов (но только те, которые одинаковы для этого и некоторых других клиентов, он НЕ СОЗДАЕТ дубликатов). Второй показывает только проверено для этого клиента, но без тех, которые он не выбрал. Поэтому, когда я редактирую этого клиента, я хотел бы показать, что он проверял, а остальные 7 (7 возможностей, которые у него есть)проверил, чтобы я мог их проверить). Теперь я могу отображать только то, что я проверял (без проверки) или все, включая проверки других клиентов (которые одинаковы для этого клиента). Я надеюсь, что это понятно, извините за мой слабый английский.

Постскриптум С проверкой я имею в виду проверкуcheckbox (выбирая строку) В основном это программа, которая добавляет обслуживание клиентам.

Большое спасибо за ваш интерес, а также за чтение, если вы прочитаете все это. Я застрял с этим вопросом на 2 дня: /

Изображение для kwwallpe: Вы можете увидеть здесь, что "Nic» никогда не был выбран ни одним клиентом, поэтому он отображается.

Чтобы сделать мой вопрос более понятным - я взял некоторые из этих столбцов из другой таблицы (как вы можете видеть в запросе sql).

Это то, что делает Kwwallpeкод:

 string sQuery = string.Format("SELECT zajsluz.akce,zajsluz.text,klisluz.pocet,klisluz.subkey,zajsluz.ID FROM zajsluz LEFT JOIN klisluz ON zajsluz.ID=klisluz.IDzajsluz WHERE zajsluz.akce= '{0}' and ISNULL(klisluz.subkey, '" + vyberradek + "') = '" + vyberradek + "' GROUP BY klisluz.subkey,zajsluz.akce,zajsluz.text,klisluz.pocet,zajsluz.ID", sZakce);

Этот код намного ближе, я думаю, что эти 2. Потому что это ВЫБРАТЬ значения, которые никогда не были выбраны ни одним клиентом b4. Вы можете увидеть шляпу "Nic» отображается потому что его нет в таблице клислиз.

Ответы на вопрос(1)

Ваш ответ на вопрос