imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 11.10.2004, 14:25     # 1
aramis
Junior Member
 
Регистрация: 31.10.2002
Сообщения: 150

aramis Путь к славе только начался
Пару вопросов по sql-statements

вопрос нумеро уно: в базе имеется 2 таблицы( 1-название кабинета+id, 2-школьный предмет+в трёх разных колонках 3 id закреплённых за ним кабинета).
мне нужен список названий всех кабинетов, которые хотя бы раз встречаются в таблице 2

вопрос 2: есть к примеру такой statement

select Name as Name2
from Students
where Name="Sergey"

что надо сделать, чтобы в where можно было писать
where Name2="Sergey"
( в eтом случае у меня выдаётся ошибка "по крайней мере для одного параметра не указано значение")

заранее спасибо

П.С. visual studio .net 2003, c#, access
aramis вне форума  
Старый 11.10.2004, 14:37     # 2
Alexandr 172
Guest
 
Сообщения: n/a

А зачем так писать, ведь Name2 это алиас Name???
 
Старый 11.10.2004, 14:41     # 3
aramis
Junior Member
 
Регистрация: 31.10.2002
Сообщения: 150

aramis Путь к славе только начался
Цитата:
Сообщение от Alexandr 172
А зачем так писать, ведь Наме2 это алиас Наме???
просто у меня в качестве Name довольно длинное выражение, которое в where уже потом не вставишь
aramis вне форума  
Старый 12.10.2004, 10:59     # 4
newapr
Guest
 
Сообщения: n/a

Если Name это expression то заюзай having.
Например select count(*) from table having count(*)>0
 
Старый 12.10.2004, 12:59     # 5
aramis
Junior Member
 
Регистрация: 31.10.2002
Сообщения: 150

aramis Путь к славе только начался
вот ежели кому интересно, дело идёт об етой байде. я понимаю без схемы базы не фига не поймёшь, но оно работает единственное ето то что у меня так и не получилось по-человечески прилепить одну и туже таблицу 3 раза и в where не прокатывает Raum1="a100" OR Raum2="100" or Raum3="100"

stunden_sqlstr=@"SELECT s.Bezeichnung, t.Teil,t.Teilung, u.Nr,u.TagNr as Tag,u.G_U, d.Abkuerzung as Dozent,d.Nachname as Dozent2, f.Abkuerzung, r1.Bezeichnung as Raum1,
(SELECT Bezeichnung FROM Raum WHERE RID=RaumID2) AS Raum2,
(SELECT Bezeichnung FROM Raum WHERE RID=RaumID3) AS Raum3
FROM Semestergruppe s inner join
(Teilgruppe t inner join
(Raum r1 inner join
(Unterrichtseinheit u inner join
(Dozent d inner join
(Kurs k inner join Fach f on k.Fach=f.Nr)
on d.id=k.Dozent)
on u.KursID=k.Nr)
on r1.RID=u.RaumID1)
on t.TGID=u.TGID)
on s.ID=t.SGID where "
+where_stat+" Order by s.Bezeichnung";

Последний раз редактировалось aramis; 12.10.2004 в 13:02.
aramis вне форума  
Старый 12.10.2004, 16:15     # 6
newapr
Guest
 
Сообщения: n/a

а что мешает написать SELECT Bezeichnung FROM Raum WHERE RID=RaumID2 and (Bezeichnung = "a001" or Bezeichnung = "a002")
???
 
Старый 12.10.2004, 16:30     # 7
aramis
Junior Member
 
Регистрация: 31.10.2002
Сообщения: 150

aramis Путь к славе только начался
Цитата:
Сообщение от newapr
а что мешает написать SELECT Bezeichnung FROM Raum WHERE RID=RaumID2 and (Bezeichnung = "a001" or Bezeichnung = "a002")
???
то что за одним предметом может до 3 кабинетов зарезервировано быть...
+ (в моём случае) есть в куче таблиц
aramis вне форума  
Старый 12.10.2004, 16:34     # 8
newapr
Guest
 
Сообщения: n/a

попробуй еще переписать sql. вместо inner join используй =. так читается намного легче. а потом возми Raum в FROM statement. после этого сможешь использовать поля этой таблицы в where-statement.

В каком уни учишься то?
 
Старый 12.10.2004, 16:51     # 9
aramis
Junior Member
 
Регистрация: 31.10.2002
Сообщения: 150

aramis Путь к славе только начался
Цитата:
Сообщение от newapr
попробуй еще переписать sql. вместо inner join используй =. так читается намного легче. а потом возми Raum в FROM statement. после этого сможешь использовать поля этой таблицы в where-statement.

В каком уни учишься то?
а на всё кроме inner join visual studio матерится по страшному. и Raum в FrROM тоже есть(ето всё один запрос...). вообше бы блин проблем не было, если бы 1 предмет=1 кабинет, а не 3..

в етом запросе без схемы и бутылки не разберёшся
P.S. fh nürnberg
aramis вне форума  
Старый 13.10.2004, 10:41     # 10
newapr
Guest
 
Сообщения: n/a

У тебя не VC ругается наверное а DB. Какую DB используешь? Может можно решить не представляя одно и то же поле одной таблицы как два отдельных поля результирующей выборки?
 
Старый 13.10.2004, 14:17     # 11
aramis
Junior Member
 
Регистрация: 31.10.2002
Сообщения: 150

aramis Путь к славе только начался
Цитата:
Сообщение от newapr
У тебя не VC ругается наверное а DB. Какую DB используешь? Может можно решить не представляя одно и то же поле одной таблицы как два отдельных поля результирующей выборки?
в принципе проблему я решил тем, что с базы беру всё что есть, а потом уже фильтрами выбираю всё, что мне нужно, но некрасиво ето блин. мне бы теперь 1.вопрос решить елегантно и всё было бы классно.

P.S.access
aramis вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:35.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.