|
запрос
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7.
написал запрос "Определить сумму всех вкладов в первом квартале текущего года по каждому виду вклада и отсортировать в порядке возрастания." Но фокс ругается на там дат,подскажите как правильно написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2011, 18:55 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42, 1. В ланном запросе нет никакого суммирования, и данные берутся без учёта первого и последнего дня квартала! 2. Скорее всего Вы используете неправильное выражение в индексе index ON bid_cheta+cymma_chet вид счёта - строка сумма счёта - индекс надо index on bid_cheta+STR(cymma_chet,16,2) 3.Данный индекс неверен, поскольку сам вопрос подразумевает сортировку по сумме счетов, т.е. index on STR(cymma_chet,16,2)+bid_cheta 4.Зачем нужен индекс, если запрос прекрасно отсортирует ваши данные Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
[/SRC] ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2011, 20:31 |
|
запрос
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2011, 20:37 |
|
запрос
|
|||
---|---|---|---|
#18+
По умолчанию, в среде FoxPro используется настройка Код: plaintext 1.
Эта настройка предполагает строгое написание констант типа Date. Причем в самом сообщении об ошибке отображается, какой именно формат константы ожидается. Это вид {^ГГГГ-ММ-ДД} Как следствие, Ваш запрос надо написать так Код: plaintext 1. 2. 3. 4. 5.
Кроме того, для упорядочивания выборки используется опция ORDER BY и создание индекса здесь не нужно. А если речь идет о временной выбоорке, то и постоянную таблицу на диске тоже создавать не надо. Вполне достаточно будет временной таблицы (курсора). Ну, и про равенство границам дат Вам уже сказали Тогда Ваш запрос примет вид Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2011, 20:56 |
|
запрос
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6.
фок ругается на дату. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 05:41 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42, тип поля dt_otk_ch посмотрите, ну и соответсвенно измените запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 05:53 |
|
запрос
|
|||
---|---|---|---|
#18+
alextashkWoolf42, 1. В ланном запросе нет никакого суммирования, и данные берутся без учёта первого и последнего дня квартала! 2. Скорее всего Вы используете неправильное выражение в индексе index ON bid_cheta+cymma_chet вид счёта - строка сумма счёта - индекс надо index on bid_cheta+STR(cymma_chet,16,2) 3.Данный индекс неверен, поскольку сам вопрос подразумевает сортировку по сумме счетов, т.е. index on STR(cymma_chet,16,2)+bid_cheta 4.Зачем нужен индекс, если запрос прекрасно отсортирует ваши данные Код: plaintext 1. 2. 3. 4.
ORDER BY 1, 2, 3; INTO table DepositRange SELECT depositRange BROWSE [/src][/SRC] Ошибка: не корректно ведена команда И фокс выводит весь список,без сортировки ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 05:59 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42, прикрепите свою таблицу, посмотрю но 1. задание вам дано вывести список счетов упорядоченный по сумме за 1 квартал а Вы пытаетесь вывести список всех счетов открытых в 1-м квартале 2.Попробуйте так Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 06:10 |
|
запрос
|
|||
---|---|---|---|
#18+
щас вообще не чего не выводит так проще будет http://zalil.ru/32185874 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 06:29 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42, ну так в этом диапазоне нет вкладов попробуй Код: plaintext 1. 2. 3. 4. 5.
он тебе даст за год ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 06:45 |
|
запрос
|
|||
---|---|---|---|
#18+
Дату изменить не проблема, как и добавить еще вкладов.) он вывел 3 вклада за 2000 год,но без сортировки(( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 06:50 |
|
запрос
|
|||
---|---|---|---|
#18+
а еще вопрос,как вывести заместо кода вклада,его название,если оно находится в другой таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 06:55 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42Дату изменить не проблема, как и добавить еще вкладов.) он вывел 3 вклада за 2000 год,но без сортировки(( Очень даже с сортировкой - по сумме, сначало 20000 75000 1000000 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 07:03 |
|
запрос
|
|||
---|---|---|---|
#18+
хм....ну щас попробую еще добавить вкладов Глянь плиз форму нью_вклад, после записи 1 вклада у меня тексбокс(дата открытия вклада) меняется на обычный чаровский тип ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 07:06 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42а еще вопрос,как вывести заместо кода вклада,его название,если оно находится в другой таблице? Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 07:07 |
|
запрос
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
этот код на кнопке По приблизительному номеру счета определить всех вкладчиков по конкретному виду вклада. я на форме вожу часть счета(1,2,3) цифры и в комбобоксе выбираю вид вклада. как условие правильно написать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 08:00 |
|
запрос
|
|||
---|---|---|---|
#18+
Какая у Вас версия FoxPro? Опция ON должна следовать сразу за JOIN. select ... from ... join ... on ... join ... on ... Тот синтаксис, который приведен у Вас генирили построители запросов в старых версиях FoxPro. Если в отношении inner join это еще работало, то для left join это будет давать не корректный результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 13:36 |
|
запрос
|
|||
---|---|---|---|
#18+
ВладимирМ, 9.0 версия ну у меня там ; стоят ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 13:41 |
|
запрос
|
|||
---|---|---|---|
#18+
он вообще результата не дает, при выхода с кнопки вылазит или некорректная команда или синтетическая ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 13:42 |
|
запрос
|
|||
---|---|---|---|
#18+
1. Прекратите использовать для записи результата запроса таблицы (INTO TABLE). Это очень плохой стиль программирования. Вы оставляете после себя "мусор", который потом Вам же и придется разгребать. Хорошо еще, если этот "мусор" не приведет к появлению различных глюков. Для временных выборок следует использовать курсор (INTO CURSOR) 2. Поиск по фрагменту значения, в общем случае, это опция LIKE или функция LIKE() Опция LIKE используется в условии WHERE команд SELECT-SQL примерно таким образом Код: plaintext 1.
Здесь в поле MyField ищется фрагмент "текст" справа и слева от которого может быть указано любое число символов. Знак процента как раз и указывает на то, что количество символов может быть любое Функция Like() - это штатная функция FoxPro. В командах Select-SQL их также можно использовать. Правда не все. Это будет выглядеть следующим образом Код: plaintext 1.
Здесь маска поиска и поле меняются местами, а символом, замещающим не определенное количество символов является уже звездочка Есть еще частный случай поиска по фрагменту, когда точно известно, что искомый фрагмент - это первые символы. В этом случае при настройке SET ANSI OFF (это настройка по умолчанию) можно использовать простое равенство Код: plaintext 1.
Подобный запрос найдет все записи, где содержимое поля MyField начинается с символов 'текст' ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 15:34 |
|
запрос
|
|||
---|---|---|---|
#18+
ВладимирМ, Если я напишу Where nomer_chet = ch правильно будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 15:53 |
|
запрос
|
|||
---|---|---|---|
#18+
Аааааааа Код: plaintext 1.
подскажите где ошибка??? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 16:28 |
|
запрос
|
|||
---|---|---|---|
#18+
Woolf42Аааааааа Код: plaintext 1.
подскажите где ошибка??? Откуда же нам знать? Приведите хотя бы запрос при выполнении которого эта ошибка возникла. Как говорится в известном анекдоте "дай и мне шанс" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 16:31 |
|
запрос
|
|||
---|---|---|---|
#18+
ВладимирМWoolf42Аааааааа Код: plaintext 1.
подскажите где ошибка??? Откуда же нам знать? Приведите хотя бы запрос при выполнении которого эта ошибка возникла. Как говорится в известном анекдоте "дай и мне шанс" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
я все о том же...( ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 18:25 |
|
запрос
|
|||
---|---|---|---|
#18+
Несколько ошибок 1. Два раза подряд ключевое слово Where 2. В FoxPro одну команду нельзя "разорвать" строкой комментария. В результате, у Вас отдельно команда SELECT и отдельная команда INTO. Не вставляйте комментарии в "середину" команд. Либо "до", либо "после" 3. Точка с запятой - это символ переноса команды. У Вас команда BROWSE записана как опция команды INTO И еще, это менее принципиально, но, тем не менее, желательно указывать алиас таблицы у всех полей, участвующих в запросе. Это уменьшает неопределенность. Если я правильно понимаю, то все поля без алиасов относятся к таблице vklad_banka. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Я бы Вам советовал на первых порах отделять команды друг от друга пустой строкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2011, 18:40 |
|
|
start [/forum/topic.php?fid=41&msg=37557290&tid=1583960]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 155ms |
0 / 0 |