|
|
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
Люди-человеки!!!! Помогите мне!!! Искал в форуме - нашел, но нифига не понял. Точнее не понял как применять - я чайник! Если есть возможность - ответьте поподробнее на мои два вопроса - время поджимает:( система такая: SQL сервер и Access, общение происходит через ADP. 1. Есть поле в форме, которое постоянно изменяется в зависимости от выбранных параметров. А вот при загрузке формы необходимо, чтобы в это поле выводилась сумма за определенное время. Т.е. есть таблица, данные в которой в виде: Дата | Цена дд.мм.гг| 1000 и надо, чтобы выборка производилась за год - с 01 января по 31 декабря. В нагрузку к этому - на форме есть выпадающий список со значениями 2003 и 2004, так вот после выбора, к примеру, 2004 - надо чтобы в этом поле, про которое я говорил, выводилась сумма из таблицы за 2004 год. Но это как опция - можно просто объяснить мне, как делать выборку по дате:) 2. После того, как мы вывели все нужные данные в форму, которая в себе содержит еще одну форму (все данные выводятся при помощи кучи запросов и изменяются пользователем после вывода в форму), мне нужно сделать отчет на основании этой формы. Т.е. вывести на печать все то, что показывается на экране, но в отформатированном виде, как мне удобнее будет. Если что-то не понятно объяснил - извиняйте, тороплюсь и мозги набекрень:( Помогите, пожалуйста!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 07:21:03 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
1. В вашем случае вам надо делать выборку не по дате, а по году! Ну ладно: Если вам надо на SQL сервере сделать выборку по дате, то дату надо передавать в виде стринги в формате 'yyyymmdd' (это не доказывается - просто это надо запомнить!!!) Пример Select * From dbo.tbl1 Where fld_date = '20041012' или Select * From dbo.tbl1 Where fld_date Between '20040101' And '20041231' В вашем же случае я бы воспользовался функцией Year (T-SQL) т.е.: Select * From dbo.tbl1 Where Year(fld_date) = 2004 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 08:39:43 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
paparome В вашем же случае я бы воспользовался функцией Year (T-SQL) т.е.: Select * From dbo.tbl1 Where Year(fld_date) = 2004 Действительно, помогло:) Спасибо! примерно за 5 минут до этого я сделал это при помощи "between", но Ваш способ мне больше нравится:) А как мне просуммировать все отобранные поля "Цена"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 08:45:04 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
Dr. I M P paparome В вашем же случае я бы воспользовался функцией Year (T-SQL) т.е.: Select * From dbo.tbl1 Where Year(fld_date) = 2004 Действительно, помогло:) Спасибо! примерно за 5 минут до этого я сделал это при помощи "between", но Ваш способ мне больше нравится:) А как мне просуммировать все отобранные поля "Цена"? Select Sum(Цена) as Sum_Цена From tbl1 Where ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 08:46:39 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
+ Хоть мой способ вам и нравиться больше - только он имеет один недостаток: В связи с использованием функции - индекс (если он есть) на fld_date использоваться не будет, что может снизить скорось выполнения запроса Если индекса нет - то по барабану (он все одно не используется ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 08:49:02 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
Спасибо! В общем и в целом код будет выглядеть так: SELECT Дата, SUM(Цена) AS sum_цена FROM dbo.table_name WHERE (YEAR(Дата)=2004) GROUP BY Дата Это у меня все в запросе (ну просто не знаю как правильно делать - через запрос или непосредственно делать обработчик событий в форме). что лучше? И какие ошибки я допустил в коде? А как мне получить теперь сумму? Т.е. чтобы ее вывести в форму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 09:00:33 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
Группировка по дате - вам всю малину портит :( Уж лучше так, тогда: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 09:05:24 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
paparomeГруппировка по дате - вам всю малину портит :( Уж лучше так, тогда: Код: plaintext 1. 2. 3. А в чем разница? И куда мне это все писать???? В запрос? Тогда как потом в форме выцарапать те данные, которые этот запрос насуммировал???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 09:12:56 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
Короче я так сделал: (ну в качестве теста) создал новую форму, источник у которой - тот запрос, который наваяли выше:) Все работает, данные суммирую при помощи =Sum([sum_цена]) но возникает вопрос - я не могу прицепить этот запрос к той форме, куда хочу его вставить - там уже другой источник есть, че делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 09:30:32 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
DSum тебя спасет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:31:33 |
|
||
|
Выборка по дате и отчет из форму - вопросы чайника.
|
|||
|---|---|---|---|
|
#18+
paparomeDSum тебя спасет И как он меня будет спасать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2004, 10:32:46 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32733212&tid=1671178]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
38ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 316ms |

| 0 / 0 |
