Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/51: Рейтинг темы: голосов - 51, средняя оценка - 4.71
SuccuB
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
1

Как посчитать количество повторений записи в базах данных?

11.12.2012, 00:45. Просмотров 9616. Ответов 6
Метки нет (Все метки)

Подскажите пожалуйста как можно подсчитать количество повторений в столбце, а именно: речь идёт об отчёте QuickReport в котором должны быть данные по продажах каждой модели за месяц (количество, сумма). Сортировку о проданных моделях за месяц я сделал в SQL запросе:

SELECT Katalog.Model, Katalog.Cena, Zakaz.Data_Oplati, Zakaz.Sostoyanie
FROM Katalog
INNER JOIN "Detail.DB" Detail
ON (Detail.ID_Avto = Katalog.ID_Avto)
INNER JOIN Zakaz
ON (Detail.ID_Zakaza = Zakaz.ID_Zakaza)
WHERE (EXTRACT( MONTH FROM Zakaz.Data_Oplati ) = :mon)
AND (Zakaz.Sostoyanie = 'выполнен')
GROUP BY Zakaz.Data_Oplati, Zakaz.Sostoyanie, Katalog.Model, Katalog.Cena

Помогите посчитать сколько автомобилей каждой модели было продано.

И ещё подскажите пожалуйста как в этом QuickReport'е вывести на печать не одну запись, а целый столбик из таблицы, а то для меня это тёмный лес к сожалению(((

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 00:45
Ответы с готовыми решениями:

Исключения в базах данных
Подскажите пожалуйста, необходимо ответить на вопрос по SQL. Всё что искал -...

Даты в Базах Данных
Доброго времени суток. Вопросы ко всем кто использует Базы данных в своих...

Нечеткий поиск в базах персональных данных
Не могу разобраться. Как организуется нечеткий поиск в базах данных? когда...

Зачем нужны связи в базах данных?
Здравствуйте, недавно работаю с базами данных и в процессе возник вопрос: зачем...

Для тех кто хорошо разбирается в базах данных
У меня были задачи: 1 Привести отношение к 3 нормальной форме; 2 Создать базу...

6
mifi
40 / 40 / 14
Регистрация: 29.12.2010
Сообщений: 159
11.12.2012, 12:22 2
Цитата Сообщение от SuccuB Посмотреть сообщение
Подскажите пожалуйста как можно подсчитать количество повторений в столбце, а именно: речь идёт об отчёте QuickReport в котором должны быть данные по продажах каждой модели за месяц (количество, сумма). Сортировку о проданных моделях за месяц я сделал в SQL запросе:

SELECT Katalog.Model, Katalog.Cena, Zakaz.Data_Oplati, Zakaz.Sostoyanie
FROM Katalog
INNER JOIN "Detail.DB" Detail
ON (Detail.ID_Avto = Katalog.ID_Avto)
INNER JOIN Zakaz
ON (Detail.ID_Zakaza = Zakaz.ID_Zakaza)
WHERE (EXTRACT( MONTH FROM Zakaz.Data_Oplati ) = :mon)
AND (Zakaz.Sostoyanie = 'выполнен')
GROUP BY Zakaz.Data_Oplati, Zakaz.Sostoyanie, Katalog.Model, Katalog.Cena

Помогите посчитать сколько автомобилей каждой модели было продано.

И ещё подскажите пожалуйста как в этом QuickReport'е вывести на печать не одну запись, а целый столбик из таблицы, а то для меня это тёмный лес к сожалению(((
Я, канэшн, может недопонял сути вопроса или не заметил какую-нить заковырку в нем, но чем Вас неустраивает, если выделенный атрибут поместить в COUNT()?
0
SuccuB
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
11.12.2012, 22:56  [ТС] 3
COUNT вполне устраивает немного недоговорил суть, этот SQL запрос правильно выводит таблицу сортируя её по дате продаши и с условием что данная модель была продана, но если будет несколько одинаковых моделей то хэтот запрос просто построит таблицу в несколько строк с одинаковой моделью машины и просто пронумерует их.
Для ясности предоставлю скриншот с результатом выполнения запроса с COUNT

SELECT Katalog.Model, Katalog.Cena, Zakaz.Data_Oplati, Zakaz.Sostoyanie,
COUNT(Model)
FROM Katalog
INNER JOIN "Detail.DB" Detail
ON (Detail.ID_Avto = Katalog.ID_Avto)
INNER JOIN Zakaz
ON (Detail.ID_Zakaza = Zakaz.ID_Zakaza)
WHERE (EXTRACT( MONTH FROM Zakaz.Data_Oplati ) = 5)
AND (Zakaz.Sostoyanie = 'выполнен')
GROUP BY Zakaz.Data_Oplati, Zakaz.Sostoyanie, Katalog.Model, Katalog.Cena




Так вот, нужно чтобы каждая модель осталась в табличке без клонов но в поле COUNT OF MODEL долны быть количества повторения для каждой модельки. Подскажите плиз как это можно реализовать.

Добавлено через 2 часа 22 минуты
Исправил SQL запрос, теперь всё работает так как доктор прописал)))
SQL
1
2
3
4
5
6
7
SELECT Katalog.Model, SUM(Katalog.Cena) AS Summa, COUNT(Model) AS Kol_vo
FROM Detail, Katalog, Zakaz
WHERE   (EXTRACT( MONTH FROM Zakaz.Data_Oplati ) = 5)  
   AND  (Zakaz.Sostoyanie = 'выполнен')
   AND  (Detail.ID_Avto = Katalog.ID_Avto)  
   AND  (Zakaz.ID_Zakaza = Detail.ID_Zakaza)  
GROUP BY Katalog.Model


Осталась только одна загвоздка, вывести это всё на экран, кто знает расскажите пожалуйста как вывести эту табличку в Quick Reporte, я пытаюсь вывести через QRDBText но получается вывод только первой строки, может надо через QRMemo, может какими то циклами, просветите кто знает пожалуйста.
0
iap
893 / 620 / 128
Регистрация: 27.11.2009
Сообщений: 1,853
12.12.2012, 10:17 4
И что такое EXTRACT( MONTH FROM Zakaz.Data_Oplati )?
Вы, вообще-то, туда ли попали, а?
0
SuccuB
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
12.12.2012, 17:50  [ТС] 5
И что такое EXTRACT( MONTH FROM Zakaz.Data_Oplati )?
Вы, вообще-то, туда ли попали, а?
Это функция возвращающая значение номера месяца из поля с типом Date.
0
iap
893 / 620 / 128
Регистрация: 27.11.2009
Сообщений: 1,853
12.12.2012, 21:47 6
Цитата Сообщение от SuccuB Посмотреть сообщение
Это функция возвращающая значение номера месяца из поля с типом Date.
В Transact SQL такой функции нет
0
SuccuB
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 4
12.12.2012, 23:20  [ТС] 7
Согласен, ошибся дверью, это MySql скорее, но вопрос с запросом уже закрыт, остался только один вопрос о выводе таблицы в Quick Report. С этой темой куда следовать?
0
12.12.2012, 23:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2012, 23:20

Посчитать количество данных для каждого типа, вывести имя типа и полученное количество.
Есть таблица Data(data, typeCode) и Types(typeCode, typeName) Надо посчитать...

О программамах или базах данных в которые можно вбивать ссылки
Здравствуйе. Есть пара вопросов. Поэтому решил спросить тут. У меня набралась...

Как изменять данные во внешних базах ?
Создал связь c Access 97 через связанные серверы, теперь хочу изменить данные в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru