Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подсчет реализованной продукции за период  [new]
Owari
Member

Откуда:
Сообщений: 4
Добрый день. Столкнулся с такой проблемой: в одном из отчетов мне нужно вывести что-то наподобие статистики по реализованным товарам и оказанным услугам за конкретный период. Давно не работал с вложенными подзапросами да и вообще с запросами, и в результате нацарапал следующий дно-код:
Select Товары.[Код Товара], Товары.Название, Товары.Тип, Товары.Описание, (Select COUNT(Номер) FROM Заказы INNER JOIN Товары ON Заказы.[Код Товара] = Товары.[Код Товара]) AS Exp 
FROM Заказы INNER JOIN Товары ON Заказы.[Код Товара] = Товары.[Код Товара] 
Where Заказы.Дата Between 'Дата1' and 'Дата2'

Часть этой схемы бд следующая:
zzz
Картинка с другого сайта.

Проблема в том, что вычисляемый столбец принимает значение количества всех оказанных услуг за период (т.е. сколько заказов существует, такое количество он и принимает), а мне нужно, чтобы он по каждому коду товара выводил количество его упоминаний в заказах, т.е. количество заказов каждого отдельного товара. Судя по всему проблема в подзапросе, но я понятия не имею, как заставить его считать count() для каждого отдельного товара. Может кто-то может объяснить?
10 май 13, 14:45    [14279124]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Рекомендации, пункты 6 и, наверное, 4
10 май 13, 15:14    [14279186]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Owari
Member

Откуда:
Сообщений: 4
Не совсем понял зачем полная версия сервера, запрос вполне обычный, но все же:
Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) Jul  9 2008 14:43:34 (Build 7601: Service Pack 1) 

Не знаю как иначе это изобразить, но увидеть я хотел бы следующее:
+
Таблица товаров
Код Товара  | Название | Цена
      1     |     А    | 10
      2     |     Б    | 20

Таблица заказов
 Номер       Код Товара
    1     |      1           
    2     |      1
    3     |      1
    4     |      2


Результат запроса
Код Товара | Название | Цена   | Количество
      1    |    А     |   10   |     3
      1    |    Б     |   20   |     1

Столбец "количество" и есть вычисляемое поле, которое содержит число упоминаний товара в заказах. Проблема в том, что мне возвращает общее количество заказов для всех товаров, а не каждого товара по отдельности.
+
Картинка с другого сайта.

И я понятия не имею, как заставить считать это значение для каждого кода товара.
10 май 13, 15:56    [14279266]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Owari
Не совсем понял зачем полная версия сервера
первым я указал пункт 6 как более важный
и уж вторым 4, с припиской "наверное"
10 май 13, 16:00    [14279279]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Owari
Member

Откуда:
Сообщений: 4
Паганель
первым я указал пункт 6 как более важный
и уж вторым 4, с припиской "наверное"
Мой 6-й пункт устраивает? Или нужно изобразить желаемый результат как-то иначе?
10 май 13, 16:05    [14279293]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Owari
Паганель
первым я указал пункт 6 как более важный
и уж вторым 4, с припиской "наверное"
Мой 6-й пункт устраивает?
нет, конечно, я не вижу ни одного из трех подпунктов
автор
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
более того, я даже не вижу примера данных, содержащего все нужные для запроса поля
10 май 13, 16:10    [14279302]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Baddy
Member

Откуда: Харьков
Сообщений: 174
Select Товары.[Код Товара], Товары.Название, Товары.Тип, Товары.Описание
		, (Select COUNT(Заказы.[Код Товара]) FROM Заказы where Заказы.[Код Товара] = Товары.[Код Товара] and Заказы.Дата Between 'Дата1' and 'Дата2') 
FROM Товары
10 май 13, 16:18    [14279318]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Owari
Member

Откуда:
Сообщений: 4
Паганель
автор
- скрипты создания таблиц;
- скрипты заполнения этих таблиц тестовыми данными;
- описание желаемого результата на примере тестовых данных.
более того, я даже не вижу примера данных, содержащего все нужные для запроса поля
Мне даже интересно стало, каким образом эти пункты вам помогут, кроме разве что создания аналогичных моим таблиц. Запрос строится на основе двух таблиц и мне нужно лишь правильно построенное вычисляемое поле. Причем я привел схему бд, пример того, какие данные поступают, каким должен быть результат и сам код запроса.
Buddy
Select Товары.[Код Товара], Товары.Название, Товары.Тип, Товары.Описание, (Select COUNT(Заказы.[Код Товара]) FROM Заказы where Заказы.[Код Товара] = Товары.[Код Товара] and Заказы.Дата Between 'Дата1' and 'Дата2')
FROM Товары
Огромное спасибо!
10 май 13, 16:31    [14279350]     Ответить | Цитировать Сообщить модератору
 Re: Подсчет реализованной продукции за период  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Owari
Мне даже интересно стало, каким образом эти пункты вам помогут, кроме разве что создания аналогичных моим таблиц
именно этим и помогут
10 май 13, 16:32    [14279354]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить