Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Den007ez Member Откуда: Сообщений: 9 |
Доброе время суток! Окажите помощь в паровой ситуации. Сам я новичке в sql но поя вилась оставаясь необходимость. Не судите строго. Есть форма в C#. Содержит несколько полей относящихся например к таблице 1 сделаны как текст бокс. Есть два поля типа чекбокс одно относится к таблице 2 а другое к таблице 3 необходимо сделать запрос (на SQL 2008 express есть таблицы они связаны по ключевым полям) чтобы при загрузке формы в эти поля поступали данный из связанных таблиц. Заранее спасибо!!!!!! |
5 янв 15, 19:18 [17087264] Ответить | Цитировать Сообщить модератору |
londinium Member Откуда: Киев Сообщений: 1193 |
Покажите скрипты таблиц и что нужно в результате |
5 янв 15, 20:48 [17087525] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31780 |
|
||
5 янв 15, 21:40 [17087635] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
|
||
5 янв 15, 22:49 [17087814] Ответить | Цитировать Сообщить модератору |
yaxta Member Откуда: азербайджан,баку Сообщений: 518 |
новерно автор хочет получит готовый программ |
6 янв 15, 09:33 [17088505] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
нет я не хочу получить "готовый программ" |
6 янв 15, 11:26 [17088681] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
А что вы тогда хотите ? select * from tab1 join tab2 on f1=f2 join tab3 on f1=f3 - это ? |
||
6 янв 15, 11:33 [17088698] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
Вот Это public void ShowMe(int id, SqlConnection conn, FormMode mode) { _conn = conn; _MyMod = mode; FillControls(id, _conn); this.butADD.Text = "Обновить"; this.ShowDialog(); } public void ShowMe(SqlConnection conn, FormMode mode) { _conn = conn; _MyMod = mode; BindingSource bs = new BindingSource(); bs.DataSource = UserRole.GetAllUserRole(_conn); this.comboRole.DataSource = bs; this.comboRole.DisplayMember = "Name"; this.comboRole.ValueMember = "UserRoleID"; BindingSource bss = new BindingSource(); bss.DataSource = WorkShop.GetAllWorkShop(_conn); this.comboWorkPl.DataSource = bss; this.comboWorkPl.DisplayMember = "WorkSName"; this.comboWorkPl.ValueMember = "WorkShopID"; this.butADD.Text = "Записать"; this.ShowDialog(); } и это string query = "SELECT a.UserId, a.Surname, a.Firstname, a.Secondname, a.FIO, b.Name, c.WorkSName, a.Password FROM Workers a INNER JOIN UserRole b ON a.Role = b.UserRoleId INNER JOIN WorkShop c ON a.WorkPlace=c.WorkShopID order by Surname;"; SqlCommand com = new SqlCommand(query, Helper.CheckConnection(conn)); SqlDataReader reader; reader = com.ExecuteReader(System.Data.CommandBehavior.CloseConnection); return reader; |
6 янв 15, 14:49 [17089283] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Т.е. все таки получить "готовый программ" |
||||
6 янв 15, 16:35 [17089674] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
Glory, Главное надо было объяснить как писать INNER JOIN ане готовый программ простите если Вы не умеет распознать вопрос |
6 янв 15, 19:53 [17090366] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
И спасибо alexeyvg |
6 янв 15, 19:54 [17090368] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
Все остальное я додумал а надо было string query = "SELECT a.UserId, a.Surname, a.Firstname, a.Secondname, a.FIO, b.Name, c.WorkSName, a.Password FROM Workers a INNER JOIN UserRole b ON a.Role = b.UserRoleId INNER JOIN WorkShop c ON a.WorkPlace=c.WorkShopID order by Surname;"; |
6 янв 15, 19:56 [17090370] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
Писать с теле фона на память было не удобно |
6 янв 15, 19:56 [17090373] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Руками пишут обычно
А зачем тогда постить сюда куски какого-то кода на С ? |
||||
7 янв 15, 09:27 [17091375] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
Glory, Просто показать замысел |
7 янв 15, 17:55 [17092081] Ответить | Цитировать Сообщить модератору |
Den007ez Member Откуда: Сообщений: 9 |
Den007ez, Не знаете как слделать есть три поля фамилия Имя отчетсво надо автоматически формировать Фамили И О |
8 янв 15, 15:39 [17094380] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Как-то вот так |
||
8 янв 15, 15:40 [17094390] Ответить | Цитировать Сообщить модератору |
xenix
Guest |
как-то так SELECT Surname,Name,MiddleName, Surname+' '+ISNULL(Name.'')+' '+ISNULL(MiddleName,'') AS FIO FROM TableA ну или так SELECT Surname,Name,MiddleName,Surname+' '+ISNULL(LEFT(Name,1),' ')+'.'+' '+ISNULL(LEFT(MiddleName,1),'')AS FIO FROM TableA |
||
8 янв 15, 15:46 [17094414] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
Кто лучше? (Фамилия Имя Отчество - > Фамилия И. О. ) |
8 янв 15, 15:50 [17094426] Ответить | Цитировать Сообщить модератору |
boroboro13 Member Откуда: Сообщений: 4 |
Всем привет. Уже третьи сутки сижу ломаю голову на запросом... Будьте добры, помогите исправить запрос на вычисление остатка количества по каждому виду материала SELECT R2.Nom_nom, (SELECT sum(R2.Kol_vo) FROM R2,R3 WHERE (R2.Nom_nakl=R3.Nom_nakl) AND (R3.Vid_op=’прием’)) AS Priem, (SELECT sum(R2.Kol_vo) FROM R2,R3 WHERE (R2.Nom_nakl=R3.Nom_nakl) AND (R3.Vid_op=’передача’)) AS Peredacha, (SELECT sum(CASE WHEN R3.Vid_op=’прием’ THEN R2.Kol_vo ELSE – R2.Kol_vo END) FROM R2,R3 WHERE R2.Nom_nakl=R3.Nom_nakl) AS Ostatok FROM R2 GROUP BY R2.Nom_nom БД (MS SQL Server 2008) приложение в Delphi7. Структура БД - 5 таблиц. БД - Склад. К сообщению приложен файл. Размер - 30Kb |
8 янв 15, 16:12 [17094499] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
Вам про join'ы вам почитать бы. Да и не учитываете вы товар по факту.. исходя из схемы Бо Товар у вас таблица R1 Шапка накладной R2 Позиции по накладной R3 А вы считаете без учета товара..... у вас все поля в селекте показывают мусор |
8 янв 15, 17:50 [17094713] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
|
||
8 янв 15, 17:52 [17094717] Ответить | Цитировать Сообщить модератору |
baza906 Member Откуда: Сообщений: 283 |
boroboro13, попробуйте так SELECT R2.Nom_nom, sum(CASE WHEN R3.Vid_op=’прием’ THEN R2.Kol_vo ELSE 0 END) AS Priem , sum(CASE WHEN R3.Vid_op=’передача’ THEN R2.Kol_vo ELSE 0 END) AS Peredacha , sum(CASE WHEN R3.Vid_op=’прием’ THEN R2.Kol_vo ELSE – R2.Kol_vo END) AS Ostatok FROM R2 JOIN R3 ON R2.Nom_nakl=R3.Nom_nakl WHERE R3.Vid_op in (’передача’, ’прием’) GROUP BY R2.Nom_nom |
8 янв 15, 18:45 [17094839] Ответить | Цитировать Сообщить модератору |
baza906 Member Откуда: Сообщений: 283 |
boroboro13, т.е. так SELECT R2.Nom_nom, sum(CASE WHEN R3.Vid_op=’прием’ THEN R2.Kol_vo ELSE 0 END) AS Priem , sum(CASE WHEN R3.Vid_op=’передача’ THEN R2.Kol_vo ELSE 0 END) AS Peredacha , sum(CASE WHEN R3.Vid_op=’прием’ THEN R2.Kol_vo ELSE –1 * R2.Kol_vo END) AS Ostatok FROM R2 JOIN R3 ON R2.Nom_nakl=R3.Nom_nakl WHERE R3.Vid_op in (’передача’, ’прием’) GROUP BY R2.Nom_nom |
8 янв 15, 18:47 [17094842] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |