Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2011, 08:03   #1
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию Построение сложных запросоов SQL

Здравствуйте, Уважаемые!

Такой вот вопрос:
Есть 3 таблицы
Book (num int, data date, Client int, kolvo int, n_novar int)
Client (num int, Name VarChar(100))
tovar (num int, Name VarChar(100), price float(9.2))

Как будет выглядеть запрос, чтобы получить результат в виде

Book.num | Book.Data | Client.Name | Summa |

Сумма вычисляется из Book.kolvo * tovar.price

???
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 14.06.2011, 08:46   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А отношения какие между таблицами?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.06.2011, 09:01   #3
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Не хватает однозначных связей в таблицах.
Если в т. Book есть ссылка на т. Client (предполагаем, что это поле Client), то
где отношение Book и товар?
Что за num?
Прик вне форума Ответить с цитированием
Старый 14.06.2011, 09:01   #4
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А отношения какие между таблицами?
Book.Client = Client.num
Book.n_tovar = tovat.num

это всмысле??? никаких других отношений не делалось!
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 14.06.2011, 09:15   #5
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Код:
SELECT book.num,
       book.DATA,
       client.NAME,
       (book.kolvo * tovar.price) AS summa
  FROM book,
       client,
       tovar
 WHERE book.client = client.num
   AND book.n_tovar = tovar.num
num - это уникальный идентификатор записи в таблице (первичный ключ).
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 14.06.2011, 09:19   #6
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Цитата:
Сообщение от Sparkman Посмотреть сообщение
Код:
SELECT book.num,
       book.DATA,
       client.NAME,
       (book.kolvo * tovar.price) AS summa
  FROM book,
       client,
       tovar
 WHERE book.client = client.num
   AND book.n_tovar = tovar.num
num - это уникальный идентификатор записи в таблице (первичный ключ).
Спасибо большое!
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 14.06.2011, 09:27   #7
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

а как сделать, чтобы сумма была не по каждому товару а по клиенту???
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Старый 14.06.2011, 10:07   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
а как сделать, чтобы сумма была не по каждому товару а по клиенту???
попробуйте так:
Код:
SELECT client.NAME,
       sum(book.kolvo * tovar.price) AS all_summa
  FROM book,
       client,
       tovar
 WHERE book.client = client.num
   AND book.n_tovar = tovar.num
 GROUP BY client.NAME
p.s. в случае необходимости поля добавляйте в SELECT и одновременно в GROUP BY ...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 14.06.2011, 10:15   #9
Рустам
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 260
По умолчанию

Оч! Большое СПАСИБО!!! Многое стало ясно и понятно!!!
Хорошо не там, где нас нет, а там, где нас еще небыло!!!
Рустам вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ADOQuery1.SQL.Add построение запроса ArtGrek БД в Delphi 3 15.04.2011 16:57
Создание сложных объектов в gui cherw9!40k Общие вопросы по Java, Java SE, Kotlin 0 22.03.2010 22:02
Программирование сложных циклов FcDonalds Помощь студентам 2 24.12.2008 22:49
Turbo pascal 2-е сложных задачи GIGALIZE Помощь студентам 1 27.11.2008 21:57
Любителям сложных формул посвящается! ZORRO2005 Microsoft Office Excel 6 02.10.2008 20:01