Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в одном запросе сделать 2 группировки? / 8 сообщений из 8, страница 1 из 1
19.04.2010, 09:37
    #36584889
Как в одном запросе сделать 2 группировки?
Есть несколько автомастерских, в каждой числится некоторое количество машин, у каждой машины есть марка и некоторые тех.параметры, которые нужно сложить. Собрал всю эту инфу в курсор. Задача: вытянуть из этого главного курсора инфу о машинах, сложив их тех.параметры, но сложив только для машин одной марки и закрепленных за одной и той же автомастерской. 2 группировки, вывод запроса во второй курсор. Как сделать?
mainCurr:
Autodoc название автомастерской
Carlogo марка автомобиля
Techdate1 поле с тех.данными, числовой тип
Techdate2 поле с тех.данными, числовой тип
Techdate3 поле с тех.данными, числовой тип

з.ы. Работаю в 9ке, перед запросами с группировкой ставлю SET ENGINEBEHAVIOR 70.
...
Рейтинг: 0 / 0
19.04.2010, 09:40
    #36584890
Как в одном запросе сделать 2 группировки?
Результат в таком виде:
Назв.автомастерской | Марка_авто | Тех.данные1 | Тех.данные2 | Тех.данные3
...
Рейтинг: 0 / 0
19.04.2010, 09:50
    #36584914
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в одном запросе сделать 2 группировки?
Группировку можно делать по нескольким полям:
Код: plaintext
GROUP by Autodoc, Carlogo
...
Рейтинг: 0 / 0
19.04.2010, 09:50
    #36584915
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в одном запросе сделать 2 группировки?
SET ENGINEBEHAVIOR 70
не нужен,
если правильно писать запрос.

видишь, мне не понадобилось дергать EngineBehavior,
почему так - поиском в данном форуме

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Set EngineBehavior  90 

Create CURSOR mainCurr ( Autodoc   v( 50 )	; &&название автомастерской 
						,Carlogo   v( 10 )	; &&марка автомобиля
						,Techdate1 n( 10 )	; &&поле с тех.данными, числовой тип 
						,Techdate2 n( 10 )	; &&поле с тех.данными, числовой тип
						,Techdate3 n( 10 )	; &&поле с тех.данными, числовой тип
						)
						
Insert into mainCurr ;
			values (  'у пети'  ;
					, 'копейка' ;
					,  10 ,  20 ,  30  )
					
Insert into mainCurr ;
			values (  'у пети'  ;
					, 'копейка' ;
					,  10 ,  20 ,  30  )
											
Insert into mainCurr ;
			values (  'у васи'  ;
					, 'копейка' ;
					,  10 ,  20 ,  30  )
											
Select Autodoc ;
	,  Carlogo ;
	, sum(Techdate1) ;
	, Sum(Techdate2) ;
	, Sum(Techdate3) ;
  from mainCurr ;
  group by Autodoc, Carlogo 
...
Рейтинг: 0 / 0
19.04.2010, 09:51
    #36584917
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в одном запросе сделать 2 группировки?
Код: plaintext
select autodoc,carlogo,sum(Techdate1) as Techdate1,sum(Techdate2) as Techdate2,sum(Techdate3) as Techdate3 from MyCursor into cursor Result group by  1 , 2 
...
Рейтинг: 0 / 0
19.04.2010, 09:53
    #36584924
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в одном запросе сделать 2 группировки?
GermanGM
Код: plaintext
select autodoc,carlogo,sum(Techdate1) as Techdate1,sum(Techdate2) as Techdate2,sum(Techdate3) as Techdate3 from MyCursor into cursor Result group by  1 , 2 



group by 1,2

если явно знаешь имена полей - так никогда не делай
поубивал бы ...
...
Рейтинг: 0 / 0
19.04.2010, 10:18
    #36584981
GermanGM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в одном запросе сделать 2 группировки?
прошелмимо,

off Обещаю вскоре исправиться! :)
...
Рейтинг: 0 / 0
19.04.2010, 10:30
    #36585004
Как в одном запросе сделать 2 группировки?
Блин, а я думал типа подзапросами делать. Пробовал одну группировку -- либо по мастерским, либо по маркам, в итоге по одной записи выводилось -- по последней марке в главном курсоре.
Оказывается, group by можно с двумя полями использовать: сначала группируется по первому, затем по второму. Всем большое спасибо за помощь!
С set поищю по форуму.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как в одном запросе сделать 2 группировки? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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