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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2011, 15:45   #1
xanderg
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 34
По умолчанию sql запрос

Доброго дня!
Помогите написать следующий запрос.
Имеем:
таблицу Счета с полями "КодСчета", "ДатаСчета"
таблицу СчетаТовары с полями "КодСчета", "КодСчетаТовара", "Товар", "Цена", "Количество"

нужно одним запросом получить:
товары и стоимости по товарам за введенный период времени.
xanderg вне форума Ответить с цитированием
Старый 20.07.2011, 16:41   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

примерно так:
Код:
select .... from Счета, СчетаТовары
  where Счета.КодСчета = СчетаТовары.КодСчета
    and Счета.ДатаСчета between #НАчальная__Дата# and #Конечная__Дата#
при необходимости можно "свернуть" (сгруппировать) по нужному реквизиту(-ам) (т.е. либо сумма по каждому счёту, либо по каждому товару, либо и по тому и по другому...)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.07.2011, 16:43   #3
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от xanderg Посмотреть сообщение
Доброго дня!
Помогите написать следующий запрос.
Имеем:
таблицу Счета с полями "КодСчета", "ДатаСчета"
таблицу СчетаТовары с полями "КодСчета", "КодСчетаТовара", "Товар", "Цена", "Количество"

нужно одним запросом получить:
товары и стоимости по товарам за введенный период времени.

Код:
SELECT T1.КодСчета, T1.ДатаСчета, T2.Товар, T2.Цена, T2.Количество
FROM T1 INNER JOIN T2 ON T1.КодСчета = T2.КодСчета
WHERE T1.ДатаСчета>=#1/1/2011# and T1.ДатаСчета<=#31/1/2011#;
примерно так, но похоже у Вас там еще и третья таблица завязана
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 20.07.2011, 16:53   #4
xanderg
Пользователь
 
Регистрация: 06.11.2010
Сообщений: 34
По умолчанию

дело в том, что при такой организации похоже не забираются все записи из СчетаТовары, т.к. к одному счету может быть привязано несколько товаров.
xanderg вне форума Ответить с цитированием
Старый 20.07.2011, 23:01   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
дело в том, что при такой организации похоже не забираются все записи из СчетаТовары, т.к. к одному счету может быть привязано несколько товаров.
Вы очень сильно ошибаетесь.
Когда Вы связываете две таблицы, то выбираются все записи из двух таблиц, где выполняется условие связи и отбора.


кстати, мой вариант и вариант R Dmitry функционально полностью 100% идентичны. Просто запись связи в SQL допускается разная. inner join это эквивалентно просто равенству реляционных полей. И, соответственно, эти запросы будут одинаково работать.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос Frosts SQL, базы данных 2 17.05.2011 22:34
sql запрос vladislav_m БД в Delphi 6 24.04.2011 20:55
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15