powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / GROUP BY в dbase
13 сообщений из 13, страница 1 из 1
GROUP BY в dbase
    #36171203
dr1v3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините что создаю дубль, первый раз написал не в тот раздел.

Код: plaintext
select N1,N2,N3,N4,sum(N5) as N5 from 'input.dbf' group by N4,N2,N3,N1 order by N2
Код: plaintext
select N1,N2,N3,N4,sum(N5) as N5 from 'input.dbf' group by N4 order by N2
Первый запрос не выполняет что нужно, второй не выполняется, пишет мол занесите имена столбиков в group by. Работаю через BDE. Как можно обойти эту ситуацию?
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171211
dr1v3,
и какие значения первых трех полей нужно брать в случае их неодинаковости при одинаковом значении N4? Jndtn "любое" - непожходит, ибо не дает однозначности.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171213
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dr1v3Первый запрос не выполняет что нужно А ЧТО нужно (и что он выполняет)?
PS. Имхо это тема скорее о group by в BDE.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171219
dr1v3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.,

нужно брать значение только поля N4(там артикул), в остальных ахинея. А вот для вывода нужны все столбики.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171227
dr1v3проходящий.,

нужно брать значение только поля N4(там артикул), в остальных ахинея. А вот для вывода нужны все столбики.В запросе так и написать - бери aхинею?
N1 N2 N3 N4 N5
1 2 3 4 5
2 3 4 4 6
--------------
? ? ? 4 11

Что писать вместо знаков вопросов?
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171237
dr1v3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.dr1v3проходящий.,

нужно брать значение только поля N4(там артикул), в остальных ахинея. А вот для вывода нужны все столбики.В запросе так и написать - бери aхинею?
N1 N2 N3 N4 N5
1 2 3 4 5
2 3 4 4 6
--------------
? ? ? 4 11

Что писать вместо знаков вопросов?

Там должно быть значение из любой строки с N4=4. Там стоят названия одного и того же товара в Character
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171246
dr1v3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dr1v3,

P.S. в названия товаров могут отличаться в пределах опечатки, поэтому их нельзя брать в group by
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171249
dr1v3проходящий.dr1v3проходящий.,

нужно брать значение только поля N4(там артикул), в остальных ахинея. А вот для вывода нужны все столбики.В запросе так и написать - бери aхинею?
N1 N2 N3 N4 N5
1 2 3 4 5
2 3 4 4 6
--------------
? ? ? 4 11

Что писать вместо знаков вопросов?

Там должно быть значение из любой строки с N4=4. Там стоят названия одного и того же товара в CharacterЯ ж писал, что ответ "любой" не катит ибо не дает однозначности. Комп тупой, он не знает, что такое "любой" и он не может выбрать. О чем, собственно он и ругается. Укажите ясные, точные и однозначные критерии отбора. Не мне, компу.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171270
dr1v3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проходящий.,

подскажи, как указать?
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171288
dr1v3проходящий.,

подскажи, как указать?Да откуда я могу это знать? Это не мои данные, я их не вижу, не знаю семантики полей и т.д. К тому же я не телепат.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171336
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужно "любое", то используй MAX() или MIN()

Код: plaintext
1.
2.
3.
4.
select MAX(N1) as N1, MAX(N2) as N2, MAX(N3) as N3, N4, sum(N5) as N5 ;
from 'input.dbf' ;
group by N4 ;
order by  2 

Поля, которые не указаны в Group By обязательно должны быть вычислены через групповые функции.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36171413
dr1v3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМЕсли нужно "любое", то используй MAX() или MIN()

Код: plaintext
1.
2.
3.
4.
select MAX(N1) as N1, MAX(N2) as N2, MAX(N3) as N3, N4, sum(N5) as N5 ;
from 'input.dbf' ;
group by N4 ;
order by  2 

Поля, которые не указаны в Group By обязательно должны быть вычислены через групповые функции.

Спасибо, это как раз то, что мне было нужно.
...
Рейтинг: 0 / 0
GROUP BY в dbase
    #36173863
const64
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dr1v3ВладимирМЕсли нужно "любое", то используй MAX() или MIN()

Код: plaintext
1.
2.
3.
4.
select MAX(N1) as N1, MAX(N2) as N2, MAX(N3) as N3, N4, sum(N5) as N5 ;
from 'input.dbf' ;
group by N4 ;
order by  2 

Поля, которые не указаны в Group By обязательно должны быть вычислены через групповые функции.

Спасибо, это как раз то, что мне было нужно.

dr1v3
Там должно быть значение из любой строки с N4=4. Там стоят названия одного и того же товара в Character

+1
Вы должны понимать, что при таком подходе, в общем случае, Вы не получите значения N1, N2 и N3 именно из одной строки...
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / GROUP BY в dbase
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]