|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2012, 17:48 | #21 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Во блин.. весь день вожусь с этим.. никакого толку..
|
13.01.2012, 18:48 | #22 | |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Попробуйте так
Цитата:
|
|
16.01.2012, 10:22 | #23 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Что такое [txt#tab]?
|
16.01.2012, 10:28 | #24 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Это название таблицы, в Вашем случае - [Счета]
|
16.01.2012, 12:42 | #25 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Вопрос почему после таких запросов сбиваются данные полей при выборке?
|
16.01.2012, 13:34 | #26 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
Не понял вопрос! Подзапрос возвращает номер первых записей, которые отвечают Вашим условиям. Основной запрос возвращает все поля, номера записей которых соответствуют найденым номерам в подзапросе.
|
16.01.2012, 13:48 | #27 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
По вашему запросу как бы ни менял, все равно ошибка, обычно такая: неправильный синтаксис около ключевого слова "FROM"
SELECT a.[Договор], a.[Услуга], a.[Счет], FROM Счета a, ( SELECT Mid(a.[Договор], 9, 5) as _Last, Min(a.[Счет]) AS ID, FROM Счета a group by Mid(a.[Договор], 9, 5)) b where b.ID=a.[Счет] Но счет - мне вообще не нужен... в таблице связь с другой таблицей.. 1.Ключевое поле Договор. 2.Поля Организация в таблице Счета нет. 3.Поле организация я привыязываю по средству right join из таблицы Договора, (Select * From Счета Left join Договора ON Счета.Договор=Договора.Договор ) почему никто не обратил внимание? 4.В программе после нажатия на запись в первом dbgrid у меня во второй появляються лишь группа записей по совпадению номера договора из первого запроса. procedure TForm1.DBgridEh2CellClick(Column: TColumnEh); var string1:string; begin string1:=qry1.Fields[0].AsString; Delete(String1, 1, 6); //ShowMessage(String1); qry2.SQL.Clear; qry2.SQL.Text:='Select * From Договора Left join Счета ON Договора.Договор=Счета.Договор where CAST((CASE WHEN CHARINDEX('+chr(39)+'-'+chr(39)+',Договора.Договор)>0 THEN RIGHT(Договора.Договор,LEN(Договора .Договор)-CHARINDEX('+chr(39)+'-'+chr(39)+',Договора.Договор)) ELSE NULL END) AS varchar(20))='+string1; //ShowMessage(qry2.SQL.Text); qry2.Open; end; |
16.01.2012, 13:52 | #28 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.01.2012, 14:08 | #29 |
Форумчанин
Регистрация: 11.03.2011
Сообщений: 426
|
В самом начале Вы перечисляете поля таблицы [Счет] и желаете из этой таблицы получить выборку. В дальнейшем в запросах появляются какие-то Join с таблицами, о составе которых можно только гадать. Мне кажется, что Вам лучше указать сервер БД (судя по запросам MS SQL ?), перечислить нужные Вам таблицы с перечнем полей - тогда можно было бы помочь. А так ...
Не внимательный я - MS SQL не увидел. И, тем не менее, Вы связывает всё по номерам договора. А как выглядит номер договора в таблице договоров? Есть ли там уникальный номер ID для каждого договора? В чём разница между полем "Договор" в таблице "Счета" и "Договора"? Зачем возникает необходимость извлечения части поля "Договор" для связи двух таблиц? Последний раз редактировалось ReportCube; 16.01.2012 в 14:24. |
16.01.2012, 15:43 | #30 |
Форумчанин
Регистрация: 22.11.2011
Сообщений: 127
|
Таблицу я приводил.. Счет это просто какие-то числа. ID поля никакого в базе данных нет вообще.
Все связи в таблице осуществляються по странным полям, в моем случае в двух таблицах по полю Договор (Счета.Договор и Договора.Договор) Выглядит он так, как я первом посте написал (и там и там он одинакого выглядит. разницы между этими полями в таблицах никакой нет. А необходимость, в том что кроме как поле Организация и Договор, больше одинаковых полей в этих двух таблицах нет. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как составить запрос по нескольким полям | lysyuk1 | БД в Delphi | 3 | 17.11.2011 10:13 |
Составной запрос, как правильно составить? | Bendebej | SQL, базы данных | 10 | 26.02.2010 20:01 |
Как составить запрос? | jeka5555 | SQL, базы данных | 3 | 09.09.2009 10:12 |
Как составить запрос из каталога? | wegeras | PHP | 1 | 28.10.2008 13:36 |
Как правельно составить запрос!! | Areostar | SQL, базы данных | 3 | 16.02.2008 19:49 |