powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подсчет данных (Помогите пожалуйста)
14 сообщений из 14, страница 1 из 1
Подсчет данных (Помогите пожалуйста)
    #38122790
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите кто чем может ^_^

есть база данных dBf, где чем и сколько заправились водители
например

Город - Вид топлива - Количество (лит) - Сумма(р)
Москва 92 30 900
Москва 95 30 1000
С-Пб 98 40 1400
С-Пб 95 40 1300
С-Пб 95 40 1300
Омск Дт 20 600
Омск 98 40 1560


необходимо отобразить сколько литров каждого
вида топлива взято и затрачено на них ,
для каждого города отдельно.

примерно так это будет выглядить
Москва
******
92 - 30 (лит) 900 (руб)
95 - 30 (лит) 900 (руб)

СпБ
******
92 - 0 (лит) 0 (руб)
95 - 80 (лит) 2600 (руб)
98 - 40 (лит) 1400 (руб)


ЗАРАНЕЕ БЛАГОДАРЮ!
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38122828
qdesnik,
Примерно так. Пользуйся. Только разберись сначала что к чему....
Код: sql
1.
2.
3.
4.
select город, вид топлива, sum(количество литров) as litr , sum(Сумма руб) as rubley ;
from таблица
group by 1, 2 
order by 1, 2



Только строку
qdesnikСпБ
******
92 - 0 (лит) 0 (руб)

не выведет.
Если вам нужна еще и эта строка, то надо иметь табличку с видами топлива, которые существуют в каждом городе, и соединять ее с Вашей исходной таблицей...
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38123087
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qdesnikПомогите кто чем может ^_^

есть база данных dBf, где чем и сколько заправились водители
например

Город - Вид топлива - Количество (лит) - Сумма(р)
Москва 92 30 900
Москва 95 30 1000
С-Пб 98 40 1400
С-Пб 95 40 1300
С-Пб 95 40 1300
Омск Дт 20 600
Омск 98 40 1560


необходимо отобразить сколько литров каждого
вида топлива взято и затрачено на них ,
для каждого города отдельно.

примерно так это будет выглядить
Москва
******
92 - 30 (лит) 900 (руб)
95 - 30 (лит) 900 (руб)

СпБ
******
92 - 0 (лит) 0 (руб)
95 - 80 (лит) 2600 (руб)
98 - 40 (лит) 1400 (руб)


ЗАРАНЕЕ БЛАГОДАРЮ!

Типа такого:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE CURSOR test (Город c(10), Видтоплива c(10), Количество y, Сумма y) 

INSERT INTO test VALUES ('Москва', '92', 30, 900)
INSERT INTO test VALUES ('Москва', '95',  30, 1000)
INSERT INTO test VALUES ('С-Пб', '98',  40, 1400)
INSERT INTO test VALUES ('С-Пб', '95',  40, 1300)
INSERT INTO test VALUES ('С-Пб', '95',  40, 1300)
INSERT INTO test VALUES ('Омск', 'Дт',  20, 600)
INSERT INTO test VALUES ('Омск', '98',  40, 1560)


SELECT b.город, b.видтоплива, NVL(SUM(a.Количество),0.000) Количество, NVL(SUM(a.Сумма),0.00) Сумма from;
(SELECT distinct t.видтоплива, t1.город FROM test t ;
FULL OUTER  JOIN ;
test t1 ON 1=1) b ;
LEFT JOIN test a ON b.видтоплива = a.видтоплива AND b.город = a.город;
 GROUP BY b.город , b.видтоплива
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38123137
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий,
Спасибо большое, завтра все опробую и отпишу
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38123164
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,

завтра скину базу саму, видно будет, сходится ли все
Спасибо!
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124064
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий,

Станислав С...кийqdesnik,
Примерно так. Пользуйся. Только разберись сначала что к чему....
Код: sql
1.
2.
3.
4.
select город, вид топлива, sum(количество литров) as litr , sum(Сумма руб) as rubley ;
from таблица
group by 1, 2 
order by 1, 2



Только строку
qdesnikСпБ
******
92 - 0 (лит) 0 (руб)

не выведет.
Если вам нужна еще и эта строка, то надо иметь табличку с видами топлива, которые существуют в каждом городе, и соединять ее с Вашей исходной таблицей...

Все считает, но город выдает самый первый и к нему плюсует все суммы. Прикрепляю конкретную таблицу.
По поводу нулевых значений, не обязательны они, но если что есть файл с видом топлива
d_fuel.dbf
(codfuel - name) соответсвие с tranzit.dbf
и всеми городами
city.dbf
(number_city - name_city)
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124065
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWistqdesnikПомогите кто чем может ^_^

есть база данных dBf, где чем и сколько заправились водители
например

Город - Вид топлива - Количество (лит) - Сумма(р)
Москва 92 30 900
Москва 95 30 1000
С-Пб 98 40 1400
С-Пб 95 40 1300
С-Пб 95 40 1300
Омск Дт 20 600
Омск 98 40 1560


необходимо отобразить сколько литров каждого
вида топлива взято и затрачено на них ,
для каждого города отдельно.

примерно так это будет выглядить
Москва
******
92 - 30 (лит) 900 (руб)
95 - 30 (лит) 900 (руб)

СпБ
******
92 - 0 (лит) 0 (руб)
95 - 80 (лит) 2600 (руб)
98 - 40 (лит) 1400 (руб)


ЗАРАНЕЕ БЛАГОДАРЮ!

Типа такого:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
CREATE CURSOR test (Город c(10), Видтоплива c(10), Количество y, Сумма y) 

INSERT INTO test VALUES ('Москва', '92', 30, 900)
INSERT INTO test VALUES ('Москва', '95',  30, 1000)
INSERT INTO test VALUES ('С-Пб', '98',  40, 1400)
INSERT INTO test VALUES ('С-Пб', '95',  40, 1300)
INSERT INTO test VALUES ('С-Пб', '95',  40, 1300)
INSERT INTO test VALUES ('Омск', 'Дт',  20, 600)
INSERT INTO test VALUES ('Омск', '98',  40, 1560)


SELECT b.город, b.видтоплива, NVL(SUM(a.Количество),0.000) Количество, NVL(SUM(a.Сумма),0.00) Сумма from;
(SELECT distinct t.видтоплива, t1.город FROM test t ;
FULL OUTER  JOIN ;
test t1 ON 1=1) b ;
LEFT JOIN test a ON b.видтоплива = a.видтоплива AND b.город = a.город;
 GROUP BY b.город , b.видтоплива



выдает Unrecognized рhrase/keyword in command. (36)
/в команде указана недопустимая фраза или ключевое слово/
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124125
qdesnikСтанислав С...кий,

...пропущено...
Все считает, но город выдает самый первый и к нему плюсует все суммы.

Проверил на переданной таблице. Все нормально работает.
Ах, да... я же там пару "точек с запятой" (после второй и третьей строки) не поставил... Мой VFP8 выругался, что "group by должен присутствовать в Select'e"... А FPD мог и пропустить...
Ну так я не зря же сказал про то, что надо сначала понять, что запрос делает....
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124135
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кийqdesnikСтанислав С...кий,

...пропущено...
Все считает, но город выдает самый первый и к нему плюсует все суммы.

Проверил на переданной таблице. Все нормально работает.
Ах, да... я же там пару "точек с запятой" (после второй и третьей строки) не поставил... Мой VFP8 выругался, что "group by должен присутствовать в Select'e"... А FPD мог и пропустить...
Ну так я не зря же сказал про то, что надо сначала понять, что запрос делает....

можешь исправить мою учитывая таблицу?
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124147
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qdesnikвыдает Unrecognized рhrase/keyword in command. (36)
/в команде указана недопустимая фраза или ключевое слово/

Дык, версия фокса какая ?
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124157
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist,

неправильно вбил order by =) лишний символ был
все считает вроде правильно и выводит как надо, спасибо
еще бы в литрах точку поставить, а то эти тысячные сбивают, подсоби)
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124158
qdesnik,
Ох, лентяй...
Вот держи... Все работает....
Код: sql
1.
2.
3.
4.
select name_city, name, sum(amount) as litr , sum(pay) as rubley ;
from tranzit ;
group by 1, 2 ;
order by 1, 2


name_citynamelitrrubley"Белогорск""А-95"1300003683.55"Белогорск""АИ-93"1150003047.50"Биробиджан""А-76"88210018981.73"Биробиджан""А-95"7340020204534.13"Биробиджан""АИ-93"12774580337761.39"Биробиджан""ДИЗ.ТОПЛИВО"532110901568334.65"Благовещенск""А-76"158300036139.30"Благовещенск""А-95"258000066248.20"Благовещенск""АИ-93"152467038963.09"Благовещенск""ДИЗ.ТОПЛИВО"12801000314591.95"Ивановка""АИ-93"450001305.00"Свободный""А-95"181000046065.70"Свободный""АИ-93"1450003592.50"Свободный""ДИЗ.ТОПЛИВО"253000063439.70"Шимановск""А-95"700002120.30
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124162
qdesnikPaulWist,

неправильно вбил order by =) лишний символ был
все считает вроде правильно и выводит как надо, спасибо
еще бы в литрах точку поставить, а то эти тысячные сбивают, подсоби)
Эй, уважаемый... А думать-то кто будет, а?
Последний раз помогаю...
Код: sql
1.
2.
3.
4.
select name_city, name, sum(amount/1000) as litr , sum(pay) as rubley ;
from tranzit ;
group by 1, 2 ;
order by 1, 2
...
Рейтинг: 0 / 0
Подсчет данных (Помогите пожалуйста)
    #38124165
qdesnik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий,
Всеобъемлющая лень ага, после праздников. =)
Большое спасибо, принцип понял. Теперь и только с хелпом можно работать
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подсчет данных (Помогите пожалуйста)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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