|
|
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
Добрый день уважаемые гуру. Delphi+Firebird2.1+Win7Prof+IBExpert Пыталась сама, но безуспешно, видимо, только средством SQL запроса этого не сделать. У меня есть таблица из 30 фамилий сотрудников, каждый день несколько сотрудников (4-5 человек) получают деньги, но мне нужно видеть, сколько денег выдано и какому сотруднику на текущий момент времени и дату, когда последний раз выдавались деньги. Сделала форму в Delphi простую совсем: datetimepicker1,Combobox1,Edit1. Создала таблицу: Код: sql 1. 2. 3. 4. 5. Заполнила тестовыми данными, пыталась сделать выборку. В запросе мне нужно вывести тех, кто получил сегодня, с этим проблем нет: Код: sql 1. Могу по отдельности вывести по каждому сотруднику последнюю дату получения (ищу по max(ID)) Код: sql 1. Реально ли получить общий запрос? Сейчас пытаюсь сделать через GROUP BY и HAVING, но в правильном ли направлении начала думать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 16:32:23 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebody, Ну что-то вот такое Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 16:40:32 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebodyРеально ли получить общий запрос?да. ilovesomebody Код: sql 1. ilovesomebody Код: sql 1. Используй параметры! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 16:59:14 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
m7m спасибо большое. Получилось с этим. Отдельное спасибо за max(MYDATA), не думала, что сработает. Но написать запрос, который выведет именно ПОСЛЕДНЮЮ запись с [b]max(MYDATA) . То есть не sum(Money) , а именно Money[/b]. То есть в результате запроса покажутся все сотрудники, которые получали деньги и можно будет увидеть кто сколько и когда последний раз получил. То есть значения за позднейшую доступную дату для каждого сотрудника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 17:09:37 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky спасибо, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 17:12:04 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebodyНо написать запрос, который выведет именно ПОСЛЕДНЮЮ запись с [b]max(MYDATA) . То есть не sum(Money) , а именно Money[/b]. То есть в результате запроса покажутся все сотрудники, которые получали деньги и можно будет увидеть кто сколько и когда последний раз получил. То есть значения за позднейшую доступную дату для каждого сотрудника. я могу написать такой запрос, однако боюсь что он многим здесь не понравится так что подождем более сведущих в этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 17:14:22 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
Запуталась что-то совсем. По сути, логику я поняла, мне нужно вывести все записи из поля FIO, за самые поздние даты (max(MYDATA)), с соответствующими значениями в поле MONEY и TIMESTAMP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2014, 17:17:42 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebody, гдето так Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 07:38:26 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
Бяда с этими студентами, про нормализацию и слыхом не слыхивали. :) почитай учебник по проектированию БД, потом тут http://www.ibase.ru/devinfo/joins.htm ответ под спойлером, для ленивых таблиц надо 2: Код: sql 1. 2. 3. 4. 5. Код: sql 1. 2. 3. 4. 5. 6. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 08:55:22 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
Ivan_Pisarevsky Cпасибо большое. Читаю про JOIN. Однако мне непонятно, почему в первой таблице фигурирует MYDATA , ведь по сути, я рассчитывала так, что MYDATA - это дата выдачи денег сотруднику и она должна меняться. То есть Таблица 1 (справочник сотрудников) по сути не будет справочником? Или я снова чего-то недопоняла.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 10:25:05 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
m7m спасибо большое попробую! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 10:25:47 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebody Ivan_Pisarevsky Cпасибо большое. Читаю про JOIN. Однако мне непонятно, почему в первой таблице фигурирует MYDATA , ведь по сути, я рассчитывала так, что MYDATA - это дата выдачи денег сотруднику и она должна меняться. То есть Таблица 1 (справочник сотрудников) по сути не будет справочником? Или я снова чего-то недопоняла.. Ну кто знал что MYDATA это дата выдачи денег сотруднику Иван решил что это дата приема на работу (ну или что-то подобное) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 11:21:30 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebodyСоздала таблицу: Код: sql 1. 2. 3. 4. 5. У вас FIO вводится каждый раз, когда выдаются деньги? А вдруг в разных записях, для одного и того же человека, введут немного разные имена? Вместо FIO в этой табличке должно быть какое-нибудь IDFIO (integer), и ссылаться на отдельную табличку с FIO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 13:47:25 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
S.G.У вас FIO вводится каждый раз, когда выдаются деньги? А вдруг в разных записях, для одного и того же человека, введут немного разные имена? Или совсем разные. В этом месяце деньги выдавались Ивановой, в следующем - уже Петровой, а через год, глядишь, Сидоровой... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 13:53:09 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
m7mИван решил что это дата приема на работу (ну или что-то подобное)а дата выдачи баблуш это stamp, я понял как-то так. S.G.Вместо FIO в этой табличке должно быть какое-нибудь IDFIO (integer), и ссылаться на отдельную табличку с FIO.ты мой спойлер читал? ilovesomebodyИли я снова чего-то недопоняла..да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2014, 14:39:57 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
В общем, не получилось у меня ничего. Я не разобралась и в итоге мне дали другое задание. Постараюсь всё сделать сама, помогите только спроектировать таблицы правильно. Существует автопарк из 30 машин - 10 грузовых, 10 легковых и 10 автобусов. Каждый день несколько рандомных водителей получают талоны на заправку, наборы запчастей, новые колёса и наличные деньги. Необходимо составить каждодневный отчёт о том, кто на сколько литров получил талонов ежедневно и в сумме за месяц. С этим проблем у меня не возникнет, я уже поняла как это делать. Но помогите понять, как сделать так, чтобы в дальнейшем в любой день можно было поднять этот самый отчёт, на, допустим, прошлый месяц 25 число. Не понимаю. Прочитала статьи по нормализации БД. Планирую сделать так: Код: sql 1. 2. 3. 4. 5. 6. Код: sql 1. 2. 3. 4. 5. Код: sql 1. 2. 3. 4. 5. Код: sql 1. 2. 3. 4. 5. Код: sql 1. 2. 3. 4. 5. По идее, таким образом я смогу видеть по каждой ТМЦ её изменения, привязаные к ID_AUTO. Если правильно вкурила суть нормализации, то лучше много маленьких табличек, чем мало больших :). Запросы буду пробовать составлять сама. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 17:23:57 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebody Код: sql 1. 2. 3. Здесь достаточно одного поля TYPE_AUTO со значениями 1, 2, 3. А у денег еще важна сумма. ilovesomebodyНеобходимо составить каждодневный отчёт о том, кто на сколько литров получил талонов ежедневно и в сумме за месяц. С этим проблем у меня не возникнет, я уже поняла как это делать. Но помогите понять, как сделать так, чтобы в дальнейшем в любой день можно было поднять этот самый отчёт, на, допустим, прошлый месяц 25 число. Не понимаю. Противоречиво, т.к. то, что понятно и то, что не понятно - одно и тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 17:30:30 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebody, Ох, ну зачем тебе TIMESTAMP`ы то? Даты разве мало... Я бы все эти выдачи талонов и т.п. свалил бы в одну табличку типа: ID - внутренний ID, PK IDFIO - кому выдали ATYPE - что это (заправка, запчасти и т.п.) ASUM - на какую сумму ADATE - когда выдали (дата) Из этой таблицы - легко вытащить суммы хоть на дату, хоть на период... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 17:35:58 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
wadman то есть понадобится ещё одна таблица? Я потом умру писать такие запросы Код: sql 1. 2. Тут будут три записи вида 1 легковой 2 грузовой 3 автобус ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 17:36:05 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebody wadman то есть понадобится ещё одна таблица? Код: sql 1. 2. Тут будут три записи вида 1 легковойодин 2 грузовой 3 автобус Ну если нет желания то можно и не создавать такую таблицу, однако все-же лучше её создать ilovesomebodyЯ потом умру писать такие запросы Скорее необорот ps/ Вместо FIO всё-же Id-работника (Ну и конечно еще справочник работников) + Справочник ТМЦ (айди, наименование, единица измерения) и Все четыре таблицы TALONZAPRAVKA, ZAPCHASTI, KOLESA, DENGI объединить в одну что-то типа вот такого Код: sql 1. 2. 3. 4. 5. 6. 7. ну гдето так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 18:07:55 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebodyЕсли правильно вкурила суть нормализации, то лучше много маленьких табличек, чем мало большихНе совсем. Скорее каждой сущности по табличке, но если сущности очень схожи, то несколько сущностей может жить в одной табличке с распределением по ролям (например сущность автомобиль, роли : грузовой, легковой) или например сущность запчасть тип колесо, двигатель и т.п. ilovesomebodyЗапросы буду пробовать составлять сама.Похвально, кто старается сам, тем поможем. приноси на рецензию ;) ilovesomebodyто есть понадобится ещё одна таблица?необязательно. микроподстановки можно иной раз сделать прямо в запросе, увлекаться этим не стОит и только для совсем "микро" case type_auto when 1 then 'грузовой' when 2 then 'автобус' when 3 then 'легковой' else 'самокат' end as auto_type_str ilovesomebodyЯ потом умру писать такие запросыНе верь ей внук, от этого не умирают. (с, анек) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2014, 18:17:21 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
До сих пор сижу.......... Потеряла уже всякую веру в себя. Всё сижу и сижу и не сдвинуться никуда. Зато запросы конечно уже научилась строить, но с логикой беда. Может потому, что она женская :( Кому не жалко, подскажите идею, пожалуйста, как построить логику, у меня с этим, похоже, реально проблема. У меня есть шесть наименований для каждого моего продукта, которые изменяются в течении месяца хаотично Уже пыталась сделать вспомогательную таблицу, куда записывала дату последнего изменения для каждого item. 17 и 26 числа я хочу сделать выборку с каждым значением для item1...item6 на текущее число: Для 17 числа (выделила красным): Код: sql 1. 2. 3. 4. 5. 6. Соответственно, для 26 числа (выделила зелёным): Код: sql 1. 2. 3. 4. 5. 6. Правильно ли будет создать для каждого item свою таблицу, потом доставать последнее значение для каждого item через select first 1 .... desc? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 16:06:47 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
Я даже в Экселе накидала принцип: автор 31 закладка на каждый день месяца и перенос данных на следующую закладку (следующее число месяца). Каждый месяц новая книга. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 16:19:46 |
|
||
|
Помогите пожалуйста с хитрым SELECT
|
|||
|---|---|---|---|
|
#18+
ilovesomebodyПравильно ли будет создать для каждого item свою таблицу, потом доставать последнее значение для каждого item через select first 1 .... desc? Нет Таблички Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. Код: sql 1. Ну вот где-то так, если я правильно понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.05.2014, 16:29:05 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38635770&tid=1563619]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
191ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 501ms |

| 0 / 0 |
