Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 109

SQL запрос для ДатаГрид

16.08.2017, 15:10. Показов 2105. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Нужен такой запрос: есть 2 таблицы. в одной заказы в другой описание товара. если в первой таблице в заказе указано 1, то цену нужно взять с другой таблице где в описание указано 1, если в заказе 5, то со значением 5, если ничего не указано то со значением 0.

как в SQL сделать такой запрос ? в СИ шарп (C#) это выглядет так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 for (int i = 0; i < advancedDataGridView1.RowCount; i++)
            {
               
                if (advancedDataGridView1.Rows[i].Cells[7].Value.ToString() == "1")
                    advancedDataGridView1.Rows[i].Cells[12].Value = advancedDataGridView1.Rows[i].Cells[8].Value.ToString();
                else if (advancedDataGridView1.Rows[i].Cells[7].Value.ToString() == "5")
                    advancedDataGridView1.Rows[i].Cells[12].Value = advancedDataGridView1.Rows[i].Cells[9].Value.ToString();
                else if (advancedDataGridView1.Rows[i].Cells[7].Value.ToString() == "11")
                    advancedDataGridView1.Rows[i].Cells[12].Value = advancedDataGridView1.Rows[i].Cells[10].Value.ToString();
                else 
                    advancedDataGridView1.Rows[i].Cells[12].Value = advancedDataGridView1.Rows[i].Cells[11].Value.ToString();
                
            }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.08.2017, 15:10
Ответы с готовыми решениями:

вставить запрос sql в датагрид
Есть бд и интерфейс к ней на c#,задача следующая: на форме есть список,я выбираю любой из пунктов(одну из фамилий),он сохраняется в...

SQL запрос для DataTable
Все привет! у меня есть DataSet из которого получаю DataTable как написать SQL запрос и получит значение конкретной ячейки. НП:...

Запрос sql для суммы колонки
Приветствую! Есть запрос: UPDATE . Set ЧИСЛО1 = ЧИСЛО3/ЧИСЛО2 Где ЧИСЛО* там поля из БД... Мне нужно написать запрос где в...

3
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
16.08.2017, 15:15
Ужасный говнокод написан. Но чтобы написать нормально - продемонстрируйте диаграмму таблиц, в которых указаны связи между заказами и товарами.
0
0 / 0 / 0
Регистрация: 07.04.2016
Сообщений: 109
16.08.2017, 15:23  [ТС]
Я сделал Views
SQL
1
2
3
4
5
6
7
8
SELECT        dbo.import_excel.Pavadinimas, dbo.import_excel.ModelID, dbo.import_excel.Firma, dbo.import_excel.Order_nr, SUM(CAST(dbo.import_excel.faktas AS INT)) 
                         AS Kiekis, dbo.import_excel.Savaite, dbo.produktas.pap_pavadinimas, dbo.produktas.pap_kaina_1, dbo.produktas.pap_kaina_5, dbo.produktas.pap_kaina_11, 
                         dbo.produktas.pard_kaina, dbo.import_excel.pap_kaina
FROM            dbo.import_excel LEFT OUTER JOIN
                         dbo.produktas ON dbo.import_excel.ModelID = dbo.produktas.ID
GROUP BY dbo.import_excel.ModelID, dbo.import_excel.Order_nr, dbo.import_excel.Pavadinimas, dbo.import_excel.Firma, dbo.import_excel.Savaite, 
                         dbo.produktas.pap_pavadinimas, dbo.produktas.pap_kaina_1, dbo.produktas.pap_kaina_5, dbo.produktas.pap_kaina_11, dbo.produktas.pard_kaina, 
                         dbo.import_excel.pap_kaina


Меня интересуют dbo.produktas.pap_kaina_1, dbo.produktas.pap_kaina_5, dbo.produktas.pap_kaina_11, dbo.produktas.pard_kaina и dbo.import_excel.pap_kaina.

Если в dbo.import_excel.pap_kaina указано 1 то цену брать с dbo.produktas.pap_kaina_1
Если dbo.produktas.pap_kaina указано 5 то цену брать с dbo.produktas.pap_kaina_5
Если dbo.produktas.pap_kaina указано 11 то цену брать с dbo.produktas.pap_kaina_11
Если dbo.produktas.pap_kaina указано NULL то цену брать с dbo.produktas.pard_kaina

это всё должно быть, как я понимаю в отдельном столбике.
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
17.08.2017, 08:51
Лучший ответ Сообщение было отмечено vadca как решение

Решение

Ну оставим в покое саму выборку, примем во внимание, что она правильная и план выполнения у неё приемлимый, тогда добавьте пару строчек к ней
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT        dbo.import_excel.Pavadinimas, dbo.import_excel.ModelID, dbo.import_excel.Firma, dbo.import_excel.Order_nr, SUM(CAST(dbo.import_excel.faktas AS INT)) 
                         AS Kiekis, dbo.import_excel.Savaite, dbo.produktas.pap_pavadinimas, dbo.produktas.pap_kaina_1, dbo.produktas.pap_kaina_5, dbo.produktas.pap_kaina_11, 
                         dbo.produktas.pard_kaina, dbo.import_excel.pap_kaina,
price = case when dbo.import_excel.pap_kaina = 1 then dbo.produktas.pap_kaina_1
                   when dbo.import_excel.pap_kaina = 5 then dbo.produktas.pap_kaina_5
                   when dbo.import_excel.pap_kaina = 11 then dbo.produktas.pap_kaina_11
                   when dbo.import_excel.pap_kaina is null then dbo.produktas.pap_kaina
                   else null end
FROM            dbo.import_excel LEFT OUTER JOIN
                         dbo.produktas ON dbo.import_excel.ModelID = dbo.produktas.ID
GROUP BY dbo.import_excel.ModelID, dbo.import_excel.Order_nr, dbo.import_excel.Pavadinimas, dbo.import_excel.Firma, dbo.import_excel.Savaite, 
                         dbo.produktas.pap_pavadinimas, dbo.produktas.pap_kaina_1, dbo.produktas.pap_kaina_5, dbo.produktas.pap_kaina_11, dbo.produktas.pard_kaina, 
                         dbo.import_excel.pap_kaina
Последнее условие - это на всякий случай. Пользуйтесь на здоровье. И никогда не работайте с получением значений из контролов - это адский ад, и работать будет в тысячи раз медленнее чем получение значений из таблиц, что прибиндены к гридам/листам/деревьям.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.08.2017, 08:51
Помогаю со студенческими работами здесь

SQL запрос для auto increment колонки
Здравствуйте ! Я отправляю данные в базу в таблицу и у меня там две колонки . Один ID с авто инкрементом и вторая колонка . Из второй...

Как вызвать SQL-запрос для БД Access?
Доброго времени суток. Подключил к dataGridView таблицу из Access. Вопрос : Как нужно вызывать sql-зопрос и что нужно для этого подключить?...

SQL-запрос для поиска максимального значения
Добрый день, форумчане. Есть вопросик. Есть 2 таблички: Пользователь () и заказ (). Дам подробное описание таблиц:. (поля): ...

SQL запрос для двух связанных таблиц access
Есть две таблицы &quot;агенты&quot; и &quot;договор&quot;, в таблице &quot;агенты&quot; только поле с перечислением агентов, в таблице &quot;договор&quot;, кроме всего...

Sql запрос для получения количества строк и имени таблицы
Здравствуйте ! Я хочу сделать такой запрос Select Count(*) From TableName Select @TableName По отдельности я могу получить значение , а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru