Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» SQL запрос

Автор: isem
Дата сообщения: 24.11.2008 09:53

Цитата:
SELECT LEAST(outdate, ate2) - GREATEST(indate, ate1) + 1
FROM sometable
WHERE ate1 <= outdate AND indate <= ate2

CommandText does not return a result set.

AlexCoRu
попробуй
SELECT LEAST(outdate, Date2['']) - GREATEST(indate, Date1['']) + 1
FROM sometable
WHERE ate1 <= outdate AND indate <= ate2
Автор: mdid
Дата сообщения: 27.11.2008 11:44
народ вопрос наверно глупый но у мя все варианты закончились....есть 2 таблицы приход расход...как мне выбрасть все записи из 2 таблиц сразу...то есть я то в курсе
структур типа

Код: select * from table,table1
Автор: MbIJIO
Дата сообщения: 09.05.2009 14:49
ORA-06550: line 9, column 13:
PL/SQL: ORA-00942: table or view does not exist
ORA-06550: line 9, column 1:
PL/SQL: SQL Statement ignored

7. insert into ПОЗИЦИИ values(300,6, 100890, 50,10);
8. insert into ПОЗИЦИИ values(300,7, 101863, 110,20);

выделяет эту строку
9. insert into ПОЗИЦИИ values(301,1, 100860, 250, 2);


10. insert into ПОЗИЦИИ values(301,2, 100861, 250, 3);
11. insert into ПОЗИЦИИ values(302,1, 100861, 250, 3);

сама таблица
Create Table ПОЗИЦИИ
(НОМ_ЗАК Number(7,0),
НОМ_ПОЗ Number(7,0),
НОМ_ПРОД Number(7,0),
ЦЕНА_ПОКУП Number(7,2),
КОЛ_ВО Number(7,0)
)
/

что за ошибка? подскажите как ее исправить, спасибо
Автор: dmka
Дата сообщения: 09.05.2009 17:05
Ну так говорит же, что такой таблицы не существует... Может О у тебя английское - если на предыдущие строки не ругается, то скопируй оттуда.
Автор: MbIJIO
Дата сообщения: 09.05.2009 17:36
нет, все правильно насисано, таблица создана(пересоздавал несколько раз), когда удалил эту строку, ошибку указал на следующую строку после этой, когда удалил все строки замолчал, в чем проблема была?
Автор: inner
Дата сообщения: 10.05.2009 11:55
MbIJIO

Наверное проблемма в стили программирования. Русские буквы может и выглядят наглядно (но не для меня), но вы хоть их в двойные кавычки заключайте.
Автор: roma
Дата сообщения: 22.05.2009 18:00
здравствуйте. с sql плотно не работал давно поэтому возможно буду спрашивать достаточно глупые вопросы
среда разработки MS ACCESS
табличка tabl1 - id ключевое поле.
+----+---------+------------+
| id | potokId | nositelHi |
+----+---------+------------+
| 1 | aaa | 55700 |
| 2 | aaa | OP601-61-1 |
| 3 | aaa | OP602-61-1 |
| 4 | aaa | OP603-61-1 |
| 5 | aaa | 55730 |
| 6 | bbb | 55700 |
| 7 | bbb | OP601-61-1 |
| 8 | bbb | OP602-61-1 |
| 9 | bbb | 55740 |
+----+---------+------------+
1. как бы мне получить nositelHi like '557*' для одного potokId где id минимальна или максимальна? я пока делаю
Код: select nositelHi from tabl1
where id=(select min(id) from tabl1 where potokId='aaa' and nositelHi like '557*');
Автор: Cheery
Дата сообщения: 22.05.2009 18:23
roma
Вроде не первый день на форуме...
Дублирование вопроса в разных разделах/темах - запрещено!
п. 2.7. главы VIII Соглашения по использованию
Автор: MbIJIO
Дата сообщения: 28.05.2009 10:51
подскажите пожалуйста как добавить ограничение чтобы переменная принимала значение 1 или 0
перемення типа integer
Автор: MrZeRo
Дата сообщения: 28.05.2009 16:28
MbIJIO
ALTER TABLE mytable ADD CONSTRAINT chk_mytable_1 CHECK(myfield IN (0,1))
Автор: MbIJIO
Дата сообщения: 28.05.2009 17:02
спасибо большое
Автор: Coroner_999
Дата сообщения: 19.08.2009 15:14
Подскажите, есть ли возможность сделать в SQl следующее. Есть одна таблица, типа
ID---NameAssemble. Запросом (CREATE TABLE) нужно создать новую таблицу, типа
ID---IDNameAssemble---NameComp---Quantit. Причем, по умолчанию значение поля IDNameAssemble должно браться из первой таблицы из поля ID и заполняться одинаковым значением во всей второй таблице. Как это можно сделать?
Автор: Ginn
Дата сообщения: 12.09.2009 00:33
Coroner_999
"Вы за меня и есть будете?? Ага!" ()
Если в первой таблице больше одной записи (иначе она не имеет смысла) - то какое из значений этой таблицы будет опорным для второй таблицы?
Можно сделать проверку на присутствие во второй таблице ключа из первой таблицы (foreign key), либо установки значения по умолчанию, но не более
Автор: mdid
Дата сообщения: 17.09.2009 13:55
люди подскажите как объеденить в один запрос а то я потерялся в inner

Код:
SELECT g.Наименование FROM Gr_Units as g
where g.Принадлежит='Основные'
union
SELECT s.Наименование FROM Spr_Units as s
where s.Принадлежит='Основные'
Автор: KADABRA
Дата сообщения: 17.09.2009 14:13
mdid

Цитата:
но все же думаю 1 запрос быстрее нежели 2

Не занимаетесь преждевременной оптимизацией. Или скорость выполнения не достаточная для решения задачи?
А запрос правильный - именно так и надо из двух таблиц запрашивать данные.
Автор: mdid
Дата сообщения: 17.09.2009 14:28
ну для меня с головой скорость...просто он еще в действии не тестировался..при 30-50 клиентах..ну раз норм то и норм..выводит так как нужно мне и это главное...думал может есть как бы "правильный" метод
Автор: KADABRA
Дата сообщения: 17.09.2009 15:29
mdid

Цитата:
думал может есть как бы "правильный" метод

Это и есть правильный метод при такой структуре БД.
Автор: kapiton1
Дата сообщения: 24.09.2009 14:32
В SQL не силён, поэтому зашел в тупик. Необходимо сделать запрос, который выбирает из базы имена компьютеров, находящихся в отделе маркетинга и рядом столбец с версией, скажем Total Commander.
Если сделать так:
SELECT name, prodvers FROM comp WHERE podr='marketing' AND prodname='Total Commander'
, то выводится только список компов, на которых установлен Total Commander, а необходимо вывести полный список компов в отделе маркетинга и там где стоит Тотал, в следующий столбец вывести версию, а где Тотала нет, то пустое поле.
Автор: volser
Дата сообщения: 24.09.2009 15:17
kapiton1
Какая субд?
Автор: kapiton1
Дата сообщения: 24.09.2009 15:28
volser
Microsoft SQL Server 2005
Автор: SIgor33
Дата сообщения: 24.09.2009 17:00
kapiton1

Цитата:
SELECT name, prodvers FROM comp WHERE podr='marketing' AND prodname='Total Commander'

Во первых где у тебя AND prodname='Total Commander' это не нужно
в дерективе select используй case для Total Commander
Если не понял нарисуй какой результат хочешь видеть
|столбец1|столбец2|столбец3|столбец4|
|что в нем|что в нем|что в нем|что в нем|
напишу тебе sql
Автор: kapiton1
Дата сообщения: 24.09.2009 18:36
SIgor33
Первый столбец: все компы из отдела маркетинга.
Второй столбец: напротив каждого компа или версия Тотала (если он установлен на этом компе), или пустое поле (если Тотал не установлен).
Автор: SIgor33
Дата сообщения: 25.09.2009 08:07
kapiton1
select
Otdel,
case prodname when 'Total Commander' then N_total else '' end as Total_N
from
comp
where
otdel='отдел 1'
где поле N_total поле в которм номера твоих тоталов
Автор: kapiton1
Дата сообщения: 25.09.2009 10:37
SIgor33
Спасибо, попробую.
Автор: Irbis3003
Дата сообщения: 03.10.2009 10:45
Подскажите кто знает - есть ли в SQL приведение типов.
Дано: таблицы PARADOX (прога на Delphi7), когда делаю запрос выдергиваю названия улиц по их индексу, но проблема в том, что в одной таблице индекс имеет тип Number, а в другой - Alpha. Менять сами таблицы - не вариант (они лежат на серваке на другом компе).
select
":aistmp:PDL.db".FIO,
":aisbasa:ULICA.db".NAME,

FROM
":aistmp:PDL.db",
":aisbasa:ULICA.db"
where
":aisbasa:ULICA.db".Codeofstreet = ":aistmp:PDL.db".Ulc; /*Вот эти две записи не контачат между собой, ибо первая - number, вторая - alpha
Автор: dneprcomp
Дата сообщения: 03.10.2009 18:36
Irbis3003
Смотри Cast и Convert функции
http://www.ayton.id.au/gary/it/Delphi/C_sql01.htm
http://www.thedbcommunity.com/index.php?option=com_content&task=view&id=106&Itemid=46
Автор: SIgor33
Дата сообщения: 06.10.2009 09:57
Irbis3003
А при чем тут индекс когда нужны типы поле
А вот про тип alpha я неслышал в парадоксе такого нет
(строки номера дата текст блоб и т.д есть)
Автор: volser
Дата сообщения: 06.10.2009 10:47
SIgor33
Индекс имелся ввиду почтовый индекс.
Автор: greenpc
Дата сообщения: 06.10.2009 11:11
SIgor33

Цитата:
CHARACTER(length) Alpha-numeric type values. Specify length of column capacity, in bytes. Length must be between 1 and 254.
VARCHAR(length)    Alpha-numeric type values. Specify length of column capacity, in bytes. Length must be between 1 and 254. In local SQL, VARCHAR is functionally the same as CHAR.

Irbis3003
where
Cast(":aisbasa:ULICA.db".Codeofstreet as varchar) = ":aistmp:PDL.db".Ulc;
Автор: Irbis3003
Дата сообщения: 08.10.2009 15:39
Есть запрос, примерно такой:
select
":aistmp:PDL.db".FIO,
":aistmp:F_VPL.db".SUMM,
max(cast('01'+'.'+":aistmp:F_VPL.db".MES+'.'+":aistmp:F_VPL.db".GOD as date)) a
FROM
":aistmp:PDL.db",
":aistmp:F_VPL.db",
":aisbasa:KARNUG.db"
where
":aistmp:PDL.db".NPD = ":aistmp:F_VPL.db".NPD
and ":aisbasa:KARNUG.db".PASPNP = ":aistmp:PDL.db".PNM
and ":aisbasa:KARNUG.db".OTDEL = '3'
group by
":aistmp:PDL.db".FIO,
":aistmp:F_VPL.db".SUMM
order by FIO; (таблицы PARADOX)

должен показать сумму, которая последней была начислена человеку. У всех людей разные даты последнего начисления. По идее столбец а (в которое собирается дата последнего начисления) должно показывать одну максимально последнюю дату для одного человека. Но показывает записей 10.
Если же убрать из запроса сумму - дата становится единственной (то есть как положено: один человек, одна дата). В чем-то ошибка? Почему получается избыточность при таком запросе?

Страницы: 1234567891011121314

Предыдущая тема: Строковый параметр в REG_BINARY


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.