|
|
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Подозреваю что вопрос элементарный, но что-то не могу сообразить. Надо сделать отчет в XL путем получения данных из MS SQL через query. В БД есть поле - содержит дату действия (и соответсвенно остатка, если говорить про фин. показатели) по счету. Надо что бы в отчет вытягивались данные за последнюю дату изменения по счету. Грубо говоря счет дата изменения остаток 1 01/01/2005 -2 1 31/01/2005 58 1 01/06/2005 20 1 31/10/2005 11 1 01/11/2005 5 Мне нужно что бы в отчет попадали данные только за 01/11/2005 Как сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 11:26:33 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
И в чем проблема? Данные -> внешние данные -> создать запрос. И в окне MS Query указываешь условие. Либо так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 12:04:40 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Не совсем так. Если бы я знал ТОЧНУЮ дату на какую было изменение по счету - безусловно условие выбора по дате было бы супер. НО. Есть куча счетов. Для каждого счета есть куча изменений на разные даты. При чем для одного счета дата последнего изменения может быть текущей, а для другого - недельной давности. Вопрос как выбрать дату _последнего_ изменения счета. (сооствеетственно последнее изменение может быть хоть год назад). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 12:10:04 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Надо в MS Query подредактировать текст запроса. По всем полям , кроме даты, должна быть группировка, а перед названием поля даты- слово Max. Это будет выборка за посдеднюю дату. Кроме Max , есть другие варианты. Если так не умеешь , используй фильтр в сводной таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 12:13:20 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
5631Надо в MS Query подредактировать текст запроса. По всем полям , кроме даты, должна быть группировка, а перед названием поля даты- слово Max. Это будет выборка за посдеднюю дату. Кроме Max , есть другие варианты. Если так не умеешь , используй фильтр в сводной таблице. В XL не могу данные вытащить просто из-за того, что их больше 65000 строк. Он их стянуть не может. А вот про первый вариант с запросом - чуть подробнее можно. я с Query столкнулся несоколько дней назад, это не моя работа, это скорее факультатив. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 12:18:58 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Каким образом ты , вообще, вытягиваешь данные с сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 12:33:48 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Через Query. Создаю там запрос. Выбираю нужные групировки. Получился вот такой сиквел-запрос. SELECT Account.Open_Close, Account.Account, Account.Code_Currency, Account.Client, Account.Balance, Account.Oper, Account.Name_Account, Account.Close_Date, RestDate.Account, RestDate.Balance, RestDate.Code_Currency, RestDate.Date_Carry, RestDate.Rest FROM RSBank.dbo.Account Account, RSBank.dbo.RestDate RestDate WHERE Account.Account = RestDate.Account AND Account.Balance = RestDate.Balance AND ((Account.Open_Close<>'З')) Соответственно поле, где храниться информация по дате проводок RestDate.Date_Carry Вот из него необходимо выбирать максимальное значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 12:41:31 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Открой панель инструментов , которая отвечает за работу с внешними данными, перейди в MS Query , нажми на кнопку SQL. Найди там на панели кнопку с операциями(кажется сумма), нажми на нее. Потом вручную исправь текст запроса. SELECT Account.Open_Close, Account.Account, Account.Code_Currency, Account.Client, Account.Balance, Account.Oper, Account.Name_Account, Account.Close_Date, RestDate.Account, RestDate.Balance, RestDate.Code_Currency, RestDate.Date_Carry, RestDate.Rest FROM RSBank.dbo.Account Account, RSBank.dbo.RestDate RestDate WHERE Account.Account = RestDate.Account AND Account.Balance = RestDate.Balance AND ((Account.Open_Close<>'З')) После Where...AND ((Account.Open_Close<>'З')) у тебя должно быть Group By c перечислением всех выводимых полей(Group by Account.Open_Close,Account.Account,...) . Поле даты туда вносить не надо. В предложении Select напиши Max(это поле) as это поле вместо названия поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 13:06:07 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Если я тебя правильно понял, то у меня должен получиться такой запрос: SELECT Account.Open_Close, Account.Account, Account.Code_Currency, Account.Client, Account.Balance, Account.Oper, Account.Name_Account, Account.Close_Date, RestDate.Account, RestDate.Balance, RestDate.Code_Currency, Max(RestDate.Date_Carry) AS 'RestDate.Date_Carry', RestDate.Rest FROM RSBank.dbo.Account Account, RSBank.dbo.RestDate RestDate WHERE Account.Account = RestDate.Account AND Account.Balance = RestDate.Balance AND ((Account.Open_Close<>'З')) GROUP BY Account.Open_Close, Account.Account, Account.Code_Currency, Account.Client, Account.Balance, Account.Oper, Account.Name_Account, Account.Close_Date, RestDate.Account, RestDate.Balance, RestDate.Code_Currency, RestDate.Rest Сделал. Выборку все равно дает со всеми счетами и всеми данными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 13:23:13 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Для уменьшения объёма данных убрал несколько лишних столбцов. Запрос нынче такой. SELECT Account.Open_Close, Account.Account, Account.Balance, Account.Name_Account, Max(RestDate.Date_Carry) AS 'RestDate.Date_Carry', RestDate.Rest FROM RSBank.dbo.Account Account, RSBank.dbo.RestDate RestDate WHERE Account.Account = RestDate.Account AND Account.Balance = RestDate.Balance AND ((Account.Open_Close<>'З')) GROUP BY Account.Open_Close, Account.Account, Account.Balance, Account.Name_Account, RestDate.Rest Все равно выбирает по несколько одинаковых счетов с остатками на разные даты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 13:35:52 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
примерно так 1) вариант, если счетов много, то можно и сервак надолго подвесить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 2) выриант посложгнее, но должен выполнятся быстрее Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 13:44:36 |
|
||
|
Вопрос по MS Query
|
|||
|---|---|---|---|
|
#18+
Спасибо за помощь! Сейчас буду обкатывать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 14:42:04 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=345&tid=2185473]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 329ms |

| 0 / 0 |
