|
|
|
Помогите, плиз с запросом, головой совсем плохой стал
|
|||
|---|---|---|---|
|
#18+
Есть таблица выдачи денег: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 10:39:42 |
|
||
|
Помогите, плиз с запросом, головой совсем плохой стал
|
|||
|---|---|---|---|
|
#18+
ponjatie normalizacii vam nevedomo? vmesto Fx sdelaite kod stat'i rashoda i spravochnik statei ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2005, 10:54:30 |
|
||
|
Помогите, плиз с запросом, головой совсем плохой стал
|
|||
|---|---|---|---|
|
#18+
Не уверен что это что-то даст,количество статей расхода невелико, и в каждом поле хранится количество денег именно по этой статье, в данном случае справочник статей невыгоден, слишком много перекрестных ссылок, труднее строить запрос, к тому же меня интересует вариант действий в данном конкретном случае, работа не предусматривает глобальную перестройку базы данных заказчика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 09:14:56 |
|
||
|
Помогите, плиз с запросом, головой совсем плохой стал
|
|||
|---|---|---|---|
|
#18+
Всем спасибо, война окончена... :) Я сам разобрался: 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 дата, монтажник был неправильный принцип группировки, теперь даже дополнительные условия не нужны, работает аж летает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2005, 12:19:17 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=654&tid=1853869]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
20ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 303ms |

| 0 / 0 |
