powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Еще Вопрос... Очень срочно! Легкий для вас...
13 сообщений из 13, страница 1 из 1
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137643
Чайник№2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица Товары.
Код товара
Категория
Товары

Таблица Заказы
Код товара
Закано (число единиц)

Они связаны.
Надо сделать запрос, который бы вычисля число заказнных товаров по категориям товаров.
Я выбираю В запрос поле Товары.Категория И делаю группировку
И поле Заказы.Кодтовара и делаю Count. Он мне подчитывает скольок товаров было заказано, включая повторения. Т.е. если 2 раза заказали хлеб, он мне 2 раза считаетЮ, а мне надо 1 раз.
Очень надо сейчас.... помогите....
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137655
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DISTINCT
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137662
Чайник №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не помогает....
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137671
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос в студию
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137675
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Нужно количество товаров или количество категорий??? Если количество товаров, то 2 - это правильно! И даже лучше не Count, а Sum. А если количество категорий, то никакой Count не нужен.
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137681
Чайник №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно списол категорий и рядом число заказанных товаров (Т.е. если в катгории 2 товара. И один из них заказывали 5 раз, а другой ни разу, то должно получистя не число 5, а число 1 - 1 товар был заказан в данной категории).
Запрос получился такой
SELECT DISTINCT Товары.Категория,
Count([Заказы и продажи].[Код товара]) AS [Count-Код товара]
FROM Товары INNER JOIN [Заказы и продажи] ON Товары.[Код товара] = [Заказы и продажи].[Код товара]
GROUP BY Товары.Категория;
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32137686
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну попробуй сделать два запроса :

1. Свяжи таблицы Товар и Заказы и измени связь, чтобы выбирались все КодаТовара из таблицы Товар (то ли левое объединение то ли правое, голова сейчас не варит). Выбири КодТовара, Категория и Заказано. Сгруппируй, а по полю Заказано - суммирование. (Sum(Nz[Заказано];0))
2. Создай новый запрос на основе тока сделаного и считай кол-во по полю Sum_Заказано.

З.Ы. Все эту шнягу можно и через подзапросы сделать (если они тебе нравяться)
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32138099
Чайник №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! У меня получилось с двумя запросами!! !! !! !!
Урраааа!!!!!!!!!
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32138117
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получилось - это хорошо. Везет человеку. А меня сейчас гемор с запросиком на 3 страницы SQL-текста (около 90 полей). Причем каждое поле Sum(IIF(....))). Выглядит жутко. Сейчас опять мучать его буду (или он меня )
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32138510
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Виктор, могу дать совет. Заведите таблицу или несколько, посадите в них части SQL'я и стройте его динамически. Тогда вся работа по редактированию SQL'я станет более понятной.
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32138666
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Владим Саныч, но для меня построить такой запросик не проблема. Да и строить его надо один раз, проблема в изменении выражений (то NZ добавить, то новое ограничение в IIF). Все поля уникальны, легко ошибиться.

Вот его мальнкая часть (так ради прикола, но с тайной надеждой вдруг кто-че дельное предложит

PARAMETERS [prmYear] Long, [prmPlant] Long;
SELECT tbl2ProductsFromPlantsWork.auPlant, tbl2ProductsFromPlantsWork.auProdName, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=1 And [auScenario]=2,nz([QuanityNatur],0),0)) AS Plan_01, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=1 And [auScenario]=1,nz([QuanityNatur],0),0)) AS Actual_01, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=1 And [auScenario]=3,nz([QuanityNatur],0),0)) AS ForeCast_01, Sum(IIf([MonthOrig]=1 And [auScenario]=1 And [YearOrig]=[prmYear]-1,nz([QuanityNatur],0),0)) AS PrevActial_01, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=2 And [auScenario]=2,nz([QuanityNatur],0),0)) AS Plan_02, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=2 And [auScenario]=1,nz([QuanityNatur],0),0)) AS Actual_02, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=2 And [auScenario]=3,nz([QuanityNatur],0),0)) AS ForeCast_02, Sum(IIf([MonthOrig]=2 And [auScenario]=1 And [YearOrig]=[prmYear]-1,nz([QuanityNatur],0),0)) AS PrevActial_02, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=3 And [auScenario]=2,nz([QuanityNatur],0),0)) AS Plan_03, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=3 And [auScenario]=1,nz([QuanityNatur],0),0)) AS Actual_03, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=3 And [auScenario]=3,nz([QuanityNatur],0),0)) AS ForeCast_03, Sum(IIf([MonthOrig]=3 And [auScenario]=1 And [YearOrig]=[prmYear]-1,nz([QuanityNatur],0),0)) AS PrevActial_03, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=4 And [auScenario]=2,nz([QuanityNatur],0),0)) AS Plan_04, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=4 And [auScenario]=1,nz([QuanityNatur],0),0)) AS Actual_04, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=4 And [auScenario]=3,nz([QuanityNatur],0),0)) AS ForeCast_04, Sum(IIf([MonthOrig]=4 And [auScenario]=1 And [YearOrig]=[prmYear]-1,nz([QuanityNatur],0),0)) AS PrevActial_04, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=5 And [auScenario]=2,nz([QuanityNatur],0),0)) AS Plan_05, Sum(IIf([YearOrig]=[prmYear] And [MonthOrig]=5 And [auScenario]=1,nz([QuanityNatur],0),0)) AS Actual_05,
...
...
...
FROM tbl2ProductsFromPlantsWork
WHERE (((tbl2ProductsFromPlantsWork.auTypeOperation)=3 Or (tbl2ProductsFromPlantsWork.auTypeOperation)=4))
GROUP BY tbl2ProductsFromPlantsWork.auKnaufPlant, tbl2ProductsFromPlantsWork.auProdName
HAVING (((tbl2ProductsFromPlantsWork.auKnaufPlant)=[prmPlant]));
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32138738
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Счастливчик из одной таблицы...
...
Рейтинг: 0 / 0
Еще Вопрос... Очень срочно! Легкий для вас...
    #32138751
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, не: не счаствливчик. Результат этого запроса участвует в другом запросе, причем есть как INNER JOIN так и LEFT JOIN так и RIGHT JOIN.
В принципе над этими, блин, джоинами и бился.

....
....
....
FROM ((tbl0ReportsAllFormer_Main INNER JOIN tbl0ReportsIndivFormer_Main ON tbl0ReportsAllFormer_Main.auMainForAllReports = tbl0ReportsIndivFormer_Main.auMainForAllReports) INNER JOIN ((tbl0GroupsDataForReports_Main RIGHT JOIN tbl0ReportsAllFormer_Sub ON tbl0GroupsDataForReports_Main.auGroupData = tbl0ReportsAllFormer_Sub.auGroupData) INNER JOIN tbl0ReportsIndivFormer_Sub ON tbl0ReportsAllFormer_Sub.auSubForAllReports = tbl0ReportsIndivFormer_Sub.auSubForAllReports) ON tbl0ReportsIndivFormer_Main.auMainIndiv = tbl0ReportsIndivFormer_Sub.auMainIndiv) LEFT JOIN (_01 RIGHT JOIN tbl0GroupsDataForReports_Sub ON [_01].auProdName = tbl0GroupsDataForReports_Sub.auProdName) ON tbl0GroupsDataForReports_Main.auGroupData = tbl0GroupsDataForReports_Sub.auID
WHERE (((tbl0ReportsAllFormer_Main.HaveIndividReports)=True) AND ((tbl0ReportsIndivFormer_Sub.Criterion)=True) AND ((tbl0ReportsIndivFormer_Main.auKnaufPlant)=[prmPlant]))
GROUP BY tbl0ReportsIndivFormer_Main.auMainIndiv, tbl0ReportsAllFormer_Sub.auMainForAllReports, tbl0ReportsAllFormer_Sub.ID_MainForAllReports, String$([NumberOfLevel]*3,".") & [NameOfRow_rus]
HAVING (((tbl0ReportsAllFormer_Sub.auMainForAllReports)=[prm_auMainForAllReports]))
ORDER BY tbl0ReportsIndivFormer_Main.auMainIndiv, tbl0ReportsAllFormer_Sub.ID_MainForAllReports;
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Еще Вопрос... Очень срочно! Легкий для вас...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]