powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите, плиз с запросом, головой совсем плохой стал
4 сообщений из 4, страница 1 из 1
Помогите, плиз с запросом, головой совсем плохой стал
    #33147356
paul999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица выдачи денег:
ID, UserID, Date, F1, F2, F3, ...
ID- номер записи
UserID - номер пользователя
FX - статья выдачи денег
пользователь может брать несколько раз в день разные суммы по разным статьям

как выбрать всех за какой-то период, например за день, с суммированием по статьям по каждому пользователю

этот запрос

SELECT DISTINCT P1.Date AS дата, CONCAT(Montagnik.FName,' ',Montagnik.Name) AS монтажник,
SUM(P1.F1) AS зарплата, SUM(P1.F2) AS бензин, SUM(P1.F3) AS проживание, SUM(P1.F4) AS проезд,
SUM(P1.F5) AS посылки, SUM(P1.F6) AS суточные, SUM(P1.F7) AS телефон, SUM(P1.F8) AS материалы,
SUM(P1.F9) AS прочее FROM Montagnik, Hoschast AS P1, Hoschast AS P2 WHERE Montagnik.IDS=P1.MontID
AND P1.Date=P2.Date AND P1.MontID=P2.MontID AND P1.Date='2005-07-04' GROUP BY P1.Date, монтажник

дает удвоение суммы если пользователь брал деньги 2 раза в день
а если добавить AND P1.IDS<>P2.IDS то показывает правильно, но только тех, кто за день брал больше одного раза, можно конечно сделать объединение, но получится очень громоздко, можно ли что-нибудь по изящнее? Мускл 4.0.20
...
Рейтинг: 0 / 0
Помогите, плиз с запросом, головой совсем плохой стал
    #33147384
Never
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ponjatie normalizacii vam nevedomo?
vmesto Fx sdelaite kod stat'i rashoda i spravochnik statei
...
Рейтинг: 0 / 0
Помогите, плиз с запросом, головой совсем плохой стал
    #33149209
paul999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не уверен что это что-то даст,количество статей расхода невелико, и в каждом поле хранится количество денег именно по этой статье, в данном случае справочник статей невыгоден, слишком много перекрестных ссылок, труднее строить запрос, к тому же меня интересует вариант действий в данном конкретном случае, работа не предусматривает глобальную перестройку базы данных заказчика
...
Рейтинг: 0 / 0
Помогите, плиз с запросом, головой совсем плохой стал
    #33156563
paul999
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, война окончена... :) Я сам разобрался:

SELECT Date AS дата, CONCAT(Montagnik.FName,' ',Montagnik.Name) AS монтажник, SUM(F1) AS зарплата, SUM(F2) AS бензин, SUM(F3) AS проживание, SUM(F4) AS проезд, SUM(F5) AS посылки, SUM(F6) AS суточные, SUM(F7) AS телефон, SUM(F8) AS материалы, SUM(F9) AS прочее FROM Hoschast, Montagnik WHERE MontID=Montagnik.IDS GROUP BY монтажник ORDER BY дата, монтажник

был неправильный принцип группировки, теперь даже дополнительные условия не нужны, работает аж летает
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите, плиз с запросом, головой совсем плохой стал
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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