|
|
|
помогите с 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 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33470746&tid=1853209]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 188ms |
| total: | 351ms |

| 0 / 0 |
