Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Вниз
Запросы Найти похожие ветки
← →
dumka (2008-04-09 13:03) [0]Привет всем!
Нужно: вычислить суммарную стоимость последнего по времени(Дата) заказа. Если таких закзов несколько, то из них нужно выбрать заказ с найбольшим идентификатором.
SELECT Sum([Kol_blud]*[stoim]) AS Выражение1, Zakaz.Data, Zakaz.Kod_zak_ka
FROM Bludo INNER JOIN Zakaz ON Bludo.Kod_bl = Zakaz.Kod_bl
GROUP BY Zakaz.Data, Zakaz.Kod_zak_ka
HAVING (((Zakaz.Data)=(Select Max([Data]) from zakaz)));
Вот до сель работает, как реализовать второе условие?
СУБД ACCESS 2007
← →
Sergey13 © (2008-04-09 13:13) [1]> [0] dumka (09.04.08 13:03)
> Если таких закзов несколько, то из них нужно выбрать заказ
> с найбольшим идентификатором.
Ну так и выбирай сразу по максимальному идентификатору. Зачем дату сюда пивлекать?
← →
dumka (2008-04-09 13:17) [2]Нет, вот такое условие и дата максимальная и идентификатор максимальный
← →
Sergey13 © (2008-04-09 13:19) [3]> [2] dumka (09.04.08 13:17)
А может быть максимальный идентификатор с НЕ максимальной датой?
← →
Kolan © (2008-04-09 13:20) [4]> и дата максимальная и идентификатор
ИспользуйAND
← →
Kolan © (2008-04-09 13:21) [5]> А может быть максимальный идентификатор с НЕ максимальной
> датой?
Может. Например SQLite, если авто инкрементить уже некуда будет заполнять имеющиеся пробелы в нумерации…
← →
Sergey13 © (2008-04-09 13:24) [6]> [5] Kolan © (09.04.08 13:21)
Я не вообще спросил, а конкретного человека про конкретную БД. Понятно, что "вообше" Ид-шники с датами никак не связаны.
← →
dumka (2008-04-09 13:24) [7]SELECT Sum([Kol_blud]*[stoim]) AS Выражение1, Zakaz.Data, Zakaz.Kod_zak_ka
FROM Bludo INNER JOIN Zakaz ON Bludo.Kod_bl = Zakaz.Kod_bl
GROUP BY Zakaz.Data, Zakaz.Kod_zak_ka
HAVING (((Zakaz.Data)=(Select Max([Data]) from zakaz)) and ((Zakaz.Kod_zak_ka)=(Select Max([Kod_zak_ka]) from zakaz)));
Так вот я сделала вот так, отбора нет, но и ошибки нет.
← →
dumka (2008-04-09 13:27) [8]
> А может быть максимальный идентификатор с НЕ максимальной
> датой?
Я думаю что да, такое условие, может это только ловушка.
Но я такую ситуацию справоцировала, т.е. так заполнила данные
← →
Sergey13 © (2008-04-09 13:33) [9]> [8] dumka (09.04.08 13:27)
Если так можно провоцировать и заполнять вручную чем угодно (сейчас ИШ придет ругаться 8-)) то логично предположить несколько заказов с одинаковыми идентификаторами. 8-)
← →
Palladin © (2008-04-09 13:36) [10]
> dumka (09.04.08 13:24) [7]
остальсь еще одно условие добавить в Select Max([Kod_zak_ka]) from zakaz
и убрать все из having"а в where и sum тоже убрать, если Sergey13 © (09.04.08 13:33) [9] не прав относительно уникальности идентификаторов заказов, если прав, то сум оставить :)
← →
Palladin © (2008-04-09 13:40) [11]select sum(Kol_blud*stoim), Zakaz.Data, Zakaz.Kod_zak_ka
from Bludo,Zakaz
where
Bludo.Kod_bl=Zakaz.Kod_bl and
zakaz.kod_zak_ka=(Select Max(kod_zak_ka) from zakaz where Zakaz.Data=(select max(Data) from Zakaz))
group by Zakaz.Data, Zakaz.Kod_zak_ka
наслаждайся...
← →
clickmaker © (2008-04-09 13:44) [12]блин, не сразу сообразил что такое bludo
думаю, что за "блудозаказ" такой? ))
← →
dumka (2008-04-09 13:44) [13]Во всяком случае спасибо,я подумаю
← →
Kolan © (2008-04-09 13:45) [14]> блин, не сразу сообразил что такое bludo
Угу, даже таблица в БД называется неопититно, наверно еда еще хуже…
← →
dumka (2008-04-09 13:51) [15]
> Palladin
Обалдеть, работает!!!
← →
Palladin © (2008-04-09 13:58) [16]кто бы сомневался... а если еще поймешь этот запрос, вообще молодцом будешь... значит не все потеряно еще...
← →
dumka (2008-04-09 14:05) [17]
> Palladin
Да, все мне понятно.
МЫ молодцы...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.05.04;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c