powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос: Выборка максимальных элементов по сумме
6 сообщений из 6, страница 1 из 1
Запрос: Выборка максимальных элементов по сумме
    #34570741
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
SELECT Product.articul, Product.name, Product.netto, Product.price,	Product.ball,;
 (Ostatki.count+nvl(Sklad.count, 0 )) AS count, Type.name;
  	FROM Product;
  	inner join type on product.tid=type.id;
  	inner join ostatki on product.id=ostatki.prid;
        left outer join sklad on product.id=sklad.prid    
Всем привет. Вышенаписаный код выбирает самый продаваемый продукт и сортирует по убыванию параметра count. Подскажите плз как сделать чтоб были только самые продаваемые? а не все подряд?
...
Рейтинг: 0 / 0
Запрос: Выборка максимальных элементов по сумме
    #34570977
SindoMeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
SELECT TOP num
num - число записей для показа... а если поставить после num слово PERCENT, то будет сколько проуентов записе выдавать

а ежели нету Хелпа по Фоксу, то вот, здесь всё описано:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT [ALL | DISTINCT] [TOP nExpr [PERCENT]] [Alias.] Select_Item 
   [[AS] Column_Name] [, [Alias.] Select_Item [[AS] Column_Name] ...] 
   FROM [FORCE] [DatabaseName!] Table [[AS] Local_Alias] 
   [ [INNER | LEFT [OUTER] | RIGHT [OUTER] | FULL [OUTER] JOIN DatabaseName!] 
      Table [[AS] Local_Alias] [ON JoinCondition ...]
      [[INTO Destination] | [TO FILE FileName [ADDITIVE] | TO PRINTER [PROMPT] | TO SCREEN]] 
      [PREFERENCE PreferenceName] [NOCONSOLE] [PLAIN] [NOWAIT]
      [WHERE JoinCondition [AND JoinCondition ...] [AND | OR FilterCondition [AND | OR FilterCondition ...]]]
   [GROUP BY GroupColumn [, GroupColumn ...]] [HAVING FilterCondition] [UNION [ALL] SELECTCommand] 
   [ORDER BY Order_Item [ASC | DESC] [, Order_Item [ASC | DESC] ...]]
...
Рейтинг: 0 / 0
Запрос: Выборка максимальных элементов по сумме
    #34572120
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересный вариант, но не решение. А если нужно ВСЕ записи с максимальным полем count вывести. Ведь я не могу же знать сколько их получится.
...
Рейтинг: 0 / 0
Запрос: Выборка максимальных элементов по сумме
    #34573563
BMJ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
BMJ
Гость
Для начала определитесь, что такое максимальная продажа (типа 3 это куча или не куча), т.е максимально это от какой печки. И максим. продаж не есть эффективность продаж. Можно продать и 10000000 шт. прибылью 100 руб и 1 штуку с 200 руб. Перед программированием уточните задачу. Извините за ответ не в тему SQL.
...
Рейтинг: 0 / 0
Запрос: Выборка максимальных элементов по сумме
    #34573767
Jevgeniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну сматрите. Клиенты продали продукции. В конце месяца подбиваются итоги и оказываются что у некоторых сумма продаж за месяц одинакова (максимальная сумма). Вот этих я и хачу вывести
...
Рейтинг: 0 / 0
Запрос: Выборка максимальных элементов по сумме
    #34574367
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во- первых я так понял что ваш первый Select сюда помещен не полностью , поскольку ни группировок , ни сортировок я в нем не вижу.
Даже если в таблицах связи 1 к 1 , все равно order by где ?
Во - вторых - версия фокса какая ?
в 9 можно использовать подзапросы типа так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CREATE CURSOR test (prod_id i ,kol n( 10 , 2 ))
INSERT INTO test values( 1 , 1 )
INSERT INTO test values( 1 , 2 )
INSERT INTO test values( 1 , 3 )
INSERT INTO test values( 2 , 2 )
INSERT INTO test values( 2 , 2 )
INSERT INTO test values( 2 , 2 )
INSERT INTO test values( 3 , 3 )
SELECT * FROM ;
( select prod_id , SUM(kol) as s_kol FROM test GROUP BY prod_id ) t1 ;
    where t1.s_kol in (select top  1  SUM(kol) as s1 FROM test group by prod_id ORDER BY s1 desc)

а в более ранних придеться в несколько проходов
сначала вычисляем максимальное значение , потом отбираем товары с продажами , равными этому значению.
в вашем случае ,если в курсоре действительно отсортированные в порядке убывания count данные , можно просто в полученном селекте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select курсор
go top
max_prod=курсор.count
* тут или
select курсор
set filter to count=max_prod
go top
* или 
select * from курсор where count=max_prod
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос: Выборка максимальных элементов по сумме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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