Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизРебят ну помогите сделать этот Запрос Найти похожие ветки
← →
tolians (2006-03-09 07:32) [0]tolians (06.03.06 04:26)
Имеется 2 таблицы, первая "наименования"
структура таблицы такая:
Наименование
Вторая "остатки"
Наименование Масса Дата
Необходимо создать запрос по каждому наименованию продукции, на дату (дата вводится юзером). А если для этого наименование не встречается записи в таблице "остатки" на эту дату, нужно вывести запись на последнюю дату.
<Цитата>
--------------------------------------------------------------------------------
atruhin © (06.03.06 05:07) [1]
Первое ОБЯЗАТЕЛЬНО сделай суррогатное ключевое поле, т.е.
таблица - table1
ID, Наименование
Вторая "остатки" - table2
ID, NAMEREF, Масса, Дата
Второе
Select distinct
Наименование,
(select Масса from table2 t where table1.ID=t.nameref and Дата <= :CDATE)
from table1 join Table 2 on table1.id = table2.nameref
<Цитата>
--------------------------------------------------------------------------------
ЮЮ © (06.03.06 05:17) [2]
> А если для этого наименование не встречается записи в таблице
> "остатки" на эту дату, нужно вывести запись на последнюю
> дату.
>
что значит на последнюю?
если есть данные на
01.02.06
03.02.06
Что надо получить, если пользователь ввел
а) 01.01.06
б) 02.02.06
в) 04.02.06
???
БД какая
<Цитата>
--------------------------------------------------------------------------------
atruhin © (06.03.06 05:30) [3]
Насколько я понял,
>>Что надо получить, если пользователь ввел
а) 01.01.06 - ничего
б) 02.02.06 - данные на 01.01.06
в) 04.02.06 - данные на 04.02.06
вообще такое применяется например для получения цен на товары, на определенную дату. (правда причем здесь Масса, не знаю:(
<Цитата>
--------------------------------------------------------------------------------
tolians (06.03.06 11:09) [4]
Если пользователь ввел 03,02,06 то надо вывести все что есть на 03,02,06 а если для этой даты ничего нет для конкретного наименования то надо вывести для этого наименования за 02,02,06 и так далее
--------------------------------------------------------------------------------
tolians (06.03.06 11:54) [5]
В общем мне надо сделать отчет остатков за период, со столбцами Остаки на начало периода Остатки на конец периода период задается пользователем
Ключевые поля у меня есть, только не ID а №
<Цитата>
← →
_RusLAN © (2006-03-09 10:51) [1]примерно так:
select Наименование
from table1 t1
join table2 t2 on t2.№_Наименование = t1.№
and t2.Дата = (select max(t2_2.Дата)
from table2 t2_2
where t2_2.Дата <= :UserData
and t2_2.№_Наименование = t2.№_Наименование
)
← →
Гость111 (2006-03-09 11:20) [2]А что такое t2_2
← →
Desdechado © (2006-03-09 11:24) [3]это псевдоним
← →
Гость111 (2006-03-09 11:29) [4]Боюсь спрашивать, а что такое псевдоним(в sql) и как его создать. Ну я только начинаю изучать.
← →
Sergey13 © (2006-03-09 11:33) [5]2 [4] Гость111 (09.03.06 11:29)
> Ну я только начинаю изучать.
За такое изучение и РО не долго получить. 8-)
Книжки не пробовал читать?
← →
Плохиш © (2006-03-09 11:34) [6]
> Гость111 (09.03.06 11:29) [4]
> from table2 t2_2
Начни наконец читать книжки.
← →
Гость111 (2006-03-09 11:38) [7]Хорошо, я закзал книженцию, но мне ее еще не скоро доставят. Только не ругайтесь. Спасибо всем за помощь.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.051 c