Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 sql-select  [new]
iwa
Member

Откуда: Ульяновская обл.
Сообщений: 134
Здравствуйте!
Есть вопрос.
При использовании sql-select фразы типа group by обязательно должны идти в строгом порядке или нет?
С group by всегда должна использоваться фраза having или нет?

Спасибо.
13 окт 03, 08:43    [373688]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
NNN 
Guest
> При использовании sql-select фразы типа group by обязательно должны идти в строгом порядке или нет?

Нет, но порядок может повлиять на результат.

> С group by всегда должна использоваться фраза having или нет?

Нет.
13 окт 03, 08:47    [373692]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
iwa
Member

Откуда: Ульяновская обл.
Сообщений: 134
каким образом может влиять на результаты порядок в sql-select?
13 окт 03, 08:53    [373696]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
NNN 
Guest
Ну глянь сам:
CREATE CURSOR x (a i, b i)

INSERT INTO x VALUES (1,1)
INSERT INTO x VALUES (1,1)
INSERT INTO x VALUES (1,2)
INSERT INTO x VALUES (1,2)
INSERT INTO x VALUES (2,1)
SELECT count(*), a, b FROM x GROUP BY a,b
SELECT count(*), a, b FROM x GROUP BY b,a
13 окт 03, 09:16    [373717]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
iwa
Member

Откуда: Ульяновская обл.
Сообщений: 134
Таблица allcalcs
============
структура:
r_year год n4
сальдо n12,2
начислено n12,2
оплачено n12,2
============
Делаю запрос:
select * from allcalcs into cursor temp group by allcalcs.r_year
sele temp
browse

В итоге:
ругается, на group by...
Почему не может сгруппировать по полю год?
13 окт 03, 09:31    [373732]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
NNN 
Guest
Если фокс 8-й, то почитай здесь
https://www.sql.ru/forum/actualthread.aspx?bid=37&tid=52840

Может тебе проще нужно?
select * from allcalcs into cursor temp ORDER BY allcalcs.r_year 
13 окт 03, 09:36    [373741]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
iwa
Member

Откуда: Ульяновская обл.
Сообщений: 134
с order не подойдет, так как мне надо сводные данные.
А фокс-8... Что именно (в двух словах) изменилось в работе с запросом?
13 окт 03, 10:17    [373796]     Ответить | Цитировать Сообщить модератору
 Re: sql-select  [new]
NNN 
Guest
Critical Changes

Critical behavior changes will most likely to affect existing code when running
under Visual FoxPro 8.0. It is extremely important that you read this section.

SQL Data Engine
Visual FoxPro contains a new SET ENGINEBEHAVIOR command so that you can
control SQL data engine compatibility. This impacts how SQL SELECT
commands function. The current default behavior can be set to previous
behavior using the SET ENGINEBEHAVIOR command and is described as follows:

You cannot use the DISTINCT clause with Memo or General fields in a SQL
SELECT statement. Instead, wrap a Memo field expression inside a function
such as PADR( ) or ALLTRIM( ).
The GROUP BY clause does not support Memo or General fields.
The GROUP BY clause must list every field in the SELECT list, except for fields
contained in an aggregate function, such as the COUNT( ) function. In addition,
the GROUP BY clause must also list every field in a HAVING clause, except for
fields contained in an aggregate function.

A SQL SELECT statement can contain the HAVING clause without the GROUP
BY clause, as long as the SQL SELECT statement does not contain any
aggregate functions.
SQL SELECT statements do not automatically remove trailing spaces from the
values that are compared using the LIKE operation. In versions prior to Visual
FoxPro 8.0, both values in the LIKE operation were trimmed from the right prior
to evaluation so that the LIKE operation could not possibly report all the
correct matches.
For more information, see SELECT - SQL Command and SET ENGINEBEHAVIOR Command.
13 окт 03, 11:24    [373867]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить