|
|
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Добрый день, помогите плз есть БД из 5 таблиц. нужно чтобы считалась сумма(amount) поле сумма является произведением трех столбцов. запрос вроед написал прально но ничего не происходит.подскажите плиз, в чем ошибка UPDATE Orders, Order_items, Customers, Computers, Discont SET Orders.Amount = Computers.price * Order_items.quantity * ( 100 - Discont.Sale ) /100 WHERE ( Orders.OrderID = Order_items.OrderID ) AND ( Customers.CustomerID = Orders.CustomerID ) AND ( Computers.nomer = Order_items.nomer ) AND ( Customers.Status = Discont.Status ) может вообще не правильно я написал.SOS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 16:34:53 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
попробуйте как-нибудь так Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 17:23:22 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Ответ MySQL: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM Orders INNER JOIN Order_items ON Orde не сработало не могу понять. где ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 17:29:52 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Упрости запрос до двух таблиц. Код: plaintext 1. 2. 3. Если получится - подставляй остальные по одной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 17:45:23 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
не получилось. все равно ругается также как и в прошлый раз.ему не нравится FROM #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 17:48:27 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Люди,ПОМОГИТЕ. я в Инсте сижу.решается моя судьба на экзамене. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:14:42 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Ну тогда быстренько пиши дамп таблицы. Можно не весь, конечно, с данными для примера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:36:38 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
create table customers ( customerid int unsigned not null auto_increment primary key, name national char(30) not null, class national char(20) not null, adress national char(40) not null, status national char(20) not null ); create table orders ( orderid int unsigned not null auto_increment primary key, customerid int unsigned not null, amount float(8,2), date date not null ); create table computers ( nomer national char(20) not null primary key, type national char(30), type1 national char(30), price float(6,2), producer national char(60) ); create table order_items ( orderid int unsigned not null, nomer national char(20) not null, quantity tinyint unsigned, primary key (orderid, nomer) ); create table discont ( status national char(20) not null, sale float(5,2) ); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:40:34 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Ну и данные модельные давай, как с пустыми таблицами-то работать? Сам же говоришь, что срочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:43:31 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
(Customers) CustomerID (Идентификатор клиента) Name (ФИО) Class(юр. лицо/ физ. лицо) Adress (Адрес) Status (Статус) 1 Иванов И.И. Физ.лицо Рябиновая д.13. Ветеран ВОВ 2 ООО «Самсон» Юр.лицо Алабяна д.8 Оптовик 3 Сидорова С.С. Физ. лицо Пр-т. Мира д.67 Пост.клиент 4 Ooo”Рубикон” Юр. лицо Пионерская д.39 Оптовик 5 Карапетов Д.И. Физ. лицо Арбатская д.1 клиент (Orders) OrderID CustomerID Amount (Сумма) Date (Дата) 1 3 2005-05-05 2 1 2005-06-10 3 2 2005-07-01 4 5 2004-04-13 5 6 2005-01-18 (Computers) Nomer Type Type1 Price Producer 77/19/00 Процессор Pentium 4 200 Intel 49/70/28 Мышь Mop-35 5 A-Tec 30/70/03 Принтер Z-42 100 Lexmark 67/76/55 CD-ROM CD1100A 43 Samsung 66/43/55 Видео карта Radeon 9700 76 ATI 09/54/57 Клавиатура AK-70 34 Logitech (Order_itmes) OrderID Nomer Quantity(Кол-во) 1 77/19/00 1 2 49/70/28 6 3 30/70/03 3 4 67/76/55 3 5 66/43/55 5 (Discont) Status Sale Клиент 1% Ветеран ВОВ 5% Оптовик 10% Постоянный клиент 5% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:55:02 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
а должна считаться сумма amount Orders.Amount = Computers.price * Order_items.quantity * ( 100 - Discont.Sale ) /100 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:57:20 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Отлично. Я пока займусь подготовкой к внесению этих данных в базу, а вы получайте свой неуд. Неужели сложно догадаться, что данные нужны в виде конкретных запросов к базе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 18:58:45 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
я извиняюсь. уже очень туго соображаю.с утра сдаю.и вот на этом запросе поплыл и сижу с ним часов с 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 19:02:34 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Ну дай нормальный дамп данных=то? чтоб я не кавычки экранировал, а над запросом думал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 19:04:47 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
use computershop; insert into customers values (NULL, "Клюев Александр","физ.лицо", "Менделеева 111", "Ветеран"), (NULL, "Краснопивцев Алексей","юр.лицо", "Центральная 2", "оптовик"), (NULL, "Белозёров Олег","физ.лицо", "Кольцевая 35", "клиент"), insert into orders values (NULL, 3, , "2005-05-05"), (NULL, 1, , "2005-06-10"), (NULL, 2, , "2005-07-01"), insert into Сomputers values ("74/331/72", "ОАО Pentium", "4", 34.99,""Intel), ("000208/01-2001", "Мышка", "USB", 24.99,"Atech"), ("000168/01-2000", "клавиатура", "А-70", 24.99,"Logitek"), insert into order_items values (1, "74/331/72", 2), (2, "67/554/134", 1), (3, "67/554/134", 5), insert into discont values ("Ветеран", 5), ("клиент", 5), ("оптовик", 5), ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 19:15:57 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Да работает ваш запрос нормально, если в соответствующем таблицам регистрах имена таблиц и полей писать. Проверяйте данные. Потому как сначала мне пришлось исправить инсерты для всех 5 таблиц, чтобы база их хотя бы всосала, потом поправить регистры названий, о которых я уже говорил, после чего проверить точность указания полей nomer в соотвествующих таблицах. И _ВСЁ_ЗАРАБОТАЛО_. Просто будьте аккуратнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 19:56:25 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
спасибо.сейчас буду капаться где наляпил ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 19:59:25 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
UPDATE orders, order_items, customers, computers, discont SET orders.amount = computers.price * order_items.quantity * ( 100 - discont.sale ) /100 WHERE ( orders.orderid = order_items.orderid AND ( customers.customerid = orders.customerid ) AND ( computers.nomer = order_items.nomer ) AND ( customers.status = discont.status ); -- -- Структура таблицы `computers` -- CREATE TABLE `computers` ( `nomer` char(20) NOT NULL default '', `type` char(30) default NULL, `type1` char(30) default NULL, `price` float(6,2) default NULL, `producer` char(60) default NULL, PRIMARY KEY (`nomer`) ) TYPE=MyISAM; -- -- Дамп данных таблицы `computers` -- INSERT INTO `computers` VALUES ('74/331/72', 'ОАО Pentium', '4', 34.99, 'Intel'), ('000208/01-2001', 'Мышка', 'USB', 24.99, 'Atech'), ('000168/01-2000', 'клавиатура', 'А-70', 24.99, 'Logitek'); -- -------------------------------------------------------- -- -- Структура таблицы `customers` -- CREATE TABLE `customers` ( `customerid` int(10) unsigned NOT NULL auto_increment, `name` char(30) NOT NULL default '', `class` char(20) NOT NULL default '', `adress` char(40) NOT NULL default '', `status` char(20) NOT NULL default '', PRIMARY KEY (`customerid`) ) TYPE=MyISAM AUTO_INCREMENT=10 ; -- -- Дамп данных таблицы `customers` -- INSERT INTO `customers` VALUES (1, 'Клюев Александр', 'физ.лицо', 'Менделеева 111', 'Ветеран'), (2, 'Краснопивцев Алексей', 'юр.лицо', 'Центральная 2', 'оптовик'), (3, 'Белозёров Олег', 'физ.лицо', 'Кольцевая 35', 'клиент'), -- -------------------------------------------------------- -- -- Структура таблицы `discont` -- CREATE TABLE `discont` ( `status` char(20) NOT NULL default '', `sale` float(5,2) default NULL ) TYPE=MyISAM; -- -- Дамп данных таблицы `discont` -- INSERT INTO `discont` VALUES ('Ветеран', 5.00), ('клиент', 5.00), ('оптовик', 5.00); -- -------------------------------------------------------- -- -- Структура таблицы `order_items` -- CREATE TABLE `order_items` ( `orderid` int(10) unsigned NOT NULL default '0', `nomer` char(20) NOT NULL default '', `quantity` tinyint(3) unsigned default NULL, PRIMARY KEY (`orderid`,`nomer`) ) TYPE=MyISAM; -- -- Дамп данных таблицы `order_items` -- INSERT INTO `order_items` VALUES (1, '74/331/72', 2), (2, '000208/01-2001', 1), (3, '000168/01-2000', 5); -- -------------------------------------------------------- -- -- Структура таблицы `orders` -- CREATE TABLE `orders` ( `orderid` int(10) unsigned NOT NULL auto_increment, `customerid` int(10) unsigned NOT NULL default '0', `amount` float(8,2) default NULL, `date` date NOT NULL default '0000-00-00', PRIMARY KEY (`orderid`) ) TYPE=MyISAM AUTO_INCREMENT=4 ; -- -- Дамп данных таблицы `orders` -- INSERT INTO `orders` VALUES (1, 3, 66.48, '2005-05-05'), (2, 1, 23.74, '2005-06-10'), (3, 2, 118.70, '2005-07-01'); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 19:59:54 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
а какой из запросов кстати правильный то? первый или второй? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 20:00:56 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
спасииииииииииибо большое!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 20:01:56 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Вот запрос, структура и данные, которые вместе работают. Скорей всего, вам не до этих рекомендаций сейчас, но вообще обычно оправданно связывать таблицы через численные поля, а не строковые. В данном случае, это означает, что вместо поля status в таблице customers следует использовать statusid, и иметь соответствующее поле в таблице discont, либо отдельную таблицу status. Примерно то же самое с полем nomer, которое по задумке и является числовым, но практически таковым не является. Нужен синтетический индекс в соотвествующей таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 20:05:54 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
сейчас постараюсь быстреньк о это все через пхп админ накидать. надеюсь сдам. еще раз спасибо большое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 20:14:45 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Запрос как не работал так и не работает.точнее работает но ничего не делает Затронутые ряды: 0 (Запрос занял 0.0071 сек) SQL-запрос: UPDATE orders, order_items, customers, computers, discont SET orders.amount = computers.price * order_items.quantity * ( 100 - discont.sale ) /100 WHERE ( orders.orderid = order_items.orderid ) AND ( customers.customerid = orders.customerid ) AND ( computers.nomer = order_items.nomer ) AND ( customers.status = discont.status ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:06:18 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Я бы советовал проверить значения, забитые в nomer в обеих таблицах. При первом запуске запроса он у меня отработал только для одной записи в заказах, т.к. для остальных соответствующих товаров не нашлось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:10:04 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Но вы когда делали дамп таблицы orders заплоняли поле amount хотя оно должно быть пустое и выщитываться?! или я не так понял?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:13:09 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Я ставил туда NULL сначала, потом запрос его обновлял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:15:31 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Понимаете, у меня таблица то правильно написно.это я вам когда писал напутал с nomer у меня тоже нулл стоит и запрос проходит,но ничего не делает. тоесть ошибки нету. бд я полностью перебил как у вас и ничего не изменилось что в в командной строке вбиваю,что в скуэль консоли в пхпадмине.одна фигня. я не понимаю.из-за чего жто может быть. у меня денвер стоит ,вроде полномочия руута и апдейт тоже имею право использовать.не понимаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:19:27 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Шаг номер раз. Проводим к базе запрос SELECT * FROM orders, order_items, customers, computers, discont WHERE ( orders.orderid = order_items.orderid ) AND ( customers.customerid = orders.customerid ) AND ( computers.nomer = order_items.nomer ) AND ( customers.status = discont.status ); Если ничего не выводится, убираем одно условие, и таблицу, которая через него джойнится. И так анализировать запрос, пока не находится проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:37:57 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
сейчас попробую.но я так один раз уже делал сегодня просто он писал мне emty set <0.00 sec> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 22:40:36 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
mysql> UPDATE orders, -> order_items, -> customers, -> computers, -> discont SET orders.amount = computers.price * order_items.quantity * ( 100 - discont.sale ) /100 WHERE ( -> orders.orderid = order_items.orderid -> ) AND ( -> customers.customerid = orders.customerid -> ) AND ( -> computers.nomer = order_items.nomer -> ) AND ( -> customers.status = discont.status -> ); Query OK, 0 rows affected (5.06 sec) Rows matched: 3 Changed: 0 Warnings: 0 mysql> UPDATE orders SET amount=NULL -> ; Query OK, 3 rows affected (0.71 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> UPDATE orders, -> order_items, -> customers, -> computers, -> discont SET orders.amount = computers.price * order_items.quantity * ( 100 - discont.sale ) /100 WHERE ( -> orders.orderid = order_items.orderid -> ) AND ( -> customers.customerid = orders.customerid -> ) AND ( -> computers.nomer = order_items.nomer -> ) AND ( -> customers.status = discont.status -> ); Query OK, 3 rows affected (22.05 sec) Rows matched: 3 Changed: 3 Warnings: 0 В любом случае, это же UPDATE, сколько вы бы ожидали, чтобы он вернул строк? В таблице значения высчитываются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:06:02 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
нет не высчитываются mysql> UPDATE orders, -> order_items, -> customers, -> computers, -> discont SET orders.amount = computers.price * order_items.quantity * ( 100 - discont.sale ) /100 WHERE ( -> orders.orderid = order_items.orderid -> ) AND ( -> customers.customerid = orders.customerid -> ) AND ( -> computers.nomer = order_items.nomer -> ) AND ( -> customers.status = discont.status -> ); Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:23:13 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Так SELECT тоже возвращает 0 рядов? Тогда я сказал, что делать дальше, вы последовали моему совету? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:32:10 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
да если изначально начинали проверять с SELECT * FROM orders, order_items, customers, computers, discont WHERE ( orders.orderid = order_items.orderid ) AND ( customers.customerid = orders.customerid ) AND ( computers.nomer = order_items.nomer ) AND ( customers.status = discont.status ); то заработало тока с SQL-запрос: SELECT * FROM orders, order_items, customers WHERE ( orders.orderid = order_items.orderid ) AND ( customers.customerid = orders.customerid ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:34:14 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Так проверьте же записи в полях nomer обеих таблиц! Наверняка они не соответствуют друг другу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:38:17 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
они совпадают но там есть номера которые не использхуютсяиз-за этого может бытЬ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:42:11 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
они там в другоом порядке стоят и есть некоторые которые не используются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 23:44:18 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Ну что тут ещё разжёвывать, не пойму... Надо смотреть, для конкретно тех товаров, которые есть в order_items, существуют ли соотвествующие товары (с тем же nomer) в computers. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 00:00:50 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
спасибо огромное,что на меня убили свое время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 00:02:01 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
но не помогло?( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 00:04:10 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
я туплю уже вроде все совпадает. хотите скрины пришлю двух таблиц вам?) уже даже их сделал) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 00:07:03 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
5 раз проверил в е что находится в ордем_айтемс (номер) совпадает что в компьютерс(номер) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 00:12:40 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
Если база не очень большая -- лучше дамп из PHPMyAdmin, аттачем к посту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 00:34:48 |
|
||
|
помогите с UPDATE
|
|||
|---|---|---|---|
|
#18+
а можете мне прислать БД,которую вы написали.посмотреть.сравнить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2006, 01:00:09 |
|
||
|
|

start [/forum/topic.php?all=1&fid=47&tid=1853209]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
243ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 580ms |

| 0 / 0 |
