Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый день всем, никак не могу придумать запрос - есть две таблицы: Зарплата - Код сотрудника, Дата чека, СуммаЗарплаты Адрес - Код сотрудника, Адрес, ДатаПереезда В таблице Адрес хранится история адресов сотрудников , т.е. на одного сотрудника может быть несколько записей, ДатаПерезда - это дата когда он переехал на новый адрес. Нужно написать запрос, который возвращал бы за заданный период сумму зарплаты (это легко) и адрес, который был действителен на конец периода. Никак не могу придумать условие как получить этот самый адрес. Если ставить условие ДатаПерезда<=ДатаОкончанияПериода, тогда попадают все старые адреса, пытался использовать MAX(ДатаПерезда) - не получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2008, 20:49 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Никак не пойму почему вот такой запрос не выводит адрес: SELECT КодСотрудника, SUM(СУммаЗарплаты) AS ESSP, b.Адрес B FROM Зарплата left outer join (SELECT КодСотрудника, ДатаПереезда , Адрес FROM Адрес ORDER BY ДатаПереезда DESC FETCH FIRST 1 ROW ONLY ) B on a.КодСотрудника=B.КодСотрудника where AND a.ДатаЧека >= 01/01/2008 AND a.ДатаЧека <= 31/03/2008 GROUP BY a.КодСотрудника, b.Адрес ORDER BY a.КодСотрудника Ошибок не выдает, все выполняется, но поле b.Адрес пустое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2008, 01:11 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Не претендую на правильность и быстродействие, но может так: SELECT q2.кодсотрудника, SUM(q2.суммазарплаты), q2.датапереезда FROM ( SELECT z.кодсотрудника, z.суммазарплаты, q1.датапереезда FROM зарплата z LEFT JOIN ( SELECT a.кодсотрудника, a.адрес, a.датапереезда FROM a.адрес WHERE a.датапереезда <= '2008-03-31' ORDER BY a.датапереезда DESC FETCH FIRST ROW ONLY ) q1 ON z.кодсотрудника = q1.кодсотрудника WHERE z.датачека >= '2008-01-01' AND z.датачека <= '2008-03-31' ) q2 GROUP BY q2.кодсотрудника, q2.датапереезда; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2008, 07:07 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Вместо SUM MAX :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2008, 10:48 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Видимо, потому что как честная субд ДБ2 выдает ровно одну запись в запросе (а не по одной на каждого сотрудника, как Вам хотелось): (SELECT КодСотрудника, ДатаПереезда , Адрес FROM Адрес ORDER BY ДатаПереезда DESC FETCH FIRST 1 ROW ONLY ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 08:42 |
|
||
|
Помогите с запросом
|
|||
|---|---|---|---|
|
#18+
Добрый день. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2008, 09:59 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=35526918&tid=1603712]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
80ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 431ms |

| 0 / 0 |
