powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Группировка в SQL не работает :(
19 сообщений из 19, страница 1 из 1
Группировка в SQL не работает :(
    #32916310
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На такой вот запрос " select kod_prod, naimen, sum(kol_vo), sum(sum_y_nds) from naklad group by kod_prod" выдает такую ошибку " When GROUP BY exists, every simple field in projectors must be in GROUP BY." . Че делать? Мне необходимо группировать по коду продукции (kod_prod), а выводить наименование продукции (naimen).
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32916321
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ясно же написано, на понятном ангельском.
По правилам, все поля, которые перечислены в SELECT и не входят в групповые функции, д.б. перечислены в GROUP BY
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32916738
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, представим что с этим разобрались. А как быть в данной ситуации?
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32916762
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какое наименование выводить то надо, еси группируешь по kod_prod то каждой такой группе соответствует несколько наименований
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32916786
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как быть в данной ситуации

Не очень понял ситуацию. Если надо группировать по коду, а выводить только наименование, то код в SELECT не упоминаешь, а GROUP BY kod_prod, naimen (т.е. в GROUP BY м.б. поля, не перечисленные в SELECT)
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32916954
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
{Какое наименование выводить то надо, еси группируешь по kod_prod то каждой такой группе соответствует несколько наименований}

Есть база с продукцией
Код Наименов
001 товар 1
002 товар 2
и т.д.

Если название "товар1" поменялось то прога конечно воспринимает уже два товара, а мне надо как один, т.е. группировать по коду, а в отчет писать последнее название.

{Не очень понял ситуацию. Если надо группировать по коду, а выводить только наименование, то код в SELECT не упоминаешь, а GROUP BY kod_prod, naimen (т.е. в GROUP BY м.б. поля, не перечисленные в SELECT)}
Если делать так : "GROUP BY kod_prod, naimen", то все равно воспринимает как два товара, а если "GROUP BY kod_prod" - ругается как я написал в первый раз.
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32916982
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Про изменение названия товара не было сказано ни слова
2. Т.е. в таблице могут существовать несколько товаров с одним кодом?
3. А как определять "последнее"?
4. У меня была похожая задача, когда могли поменяться параметры товара, но розничный код оставался прежним. Но при этом были 2 поля - дата активации и дата деактивации. Т.е. если параметры менялись, то старый деактивировался, а новый активировался, т.е. в каждый момент времени мог быть только ОДИН активный товар с данным кодом. В этом случае последний определяется очень просто (как вариант - прежнее значение можно переносить в таблицу истории)
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917042
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55 ты чуть не так понял. Два товара с одинаковым кодом в базе товаров нет
Создается накладная, товар берется из базы товаров. А через неделю название товара поменялось и опять создается накладная. Код в базе накладных один и тот же, а вот название поменялось. Мне надо сделать отчет в котором показать сколько какого товара было продано. Поэтому группировать надо по коду, а вот в отчет выводить название товара. Запрос необходимо делать в базе накладных.
Хоть чуть понятно? если че спроси объясню еще. Спасибо.
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917045
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
иначе пользоваться подзапросами, кажись последние версии MySQL их понимают, для определения последнего в таблицу нуно вставлять timestamp, который будет указывать когда внесена запись
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917072
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, название товара присутствует в накладной?
Вообще-то это неправильно, там должна быть только ссылка (id) на товар, соответственно будет только 1 название товара.
Или как я сказал - тогда название товара будет поставляться в зависимости от соотношения дат его активности и даты накладной (ну или только того, который активный в наст. момент).
Ну, а если надо обязательно последнее наименование, то как сказал предыдущий оратор - через подзапрос, типа
Код: plaintext
1.
2.
3.
4.
5.
6.
  SELECT name, SUM(nds)
  FROM naklad
  WHERE name IN (SELECT name, MAX(date_nakl)
                         FROM naklad
                         GROUP BY name)   -- все последние наименования
  GROUP BY code
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917124
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понимаешь в чем вопрос. Если я ставлю такой запрос " SELECT kod_prod, SUM(sum_y_nds), Sum(kol_vo) FROM naklad GROUP BY kod_prod", то выборку делает правильно, однако поля "naimen" в ней нет, а мне оно нужно, чтобы выводить в отчете. А такой запрос работает не правильно " SELECT kod_prod, SUM(sum_y_nds), Sum(kol_vo), naimen FROM naklad GROUP BY kod_prod, naimen", он группирует и по названию товара. А если убрать группировку по названию выдает ошибку о которой я писал ранее. Может попробовать подключитть вторую базу с товарами, хрен его как оно делается!!!
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917133
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а чем вариант с подзапросом то не устраивает?
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917141
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demon11 если можешь напиши код :)
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917142
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дык tru55 уже написал
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917157
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При таком запросе выдает ошибка о которой я писал выше :).
группироваться должно только то что есть в select
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917174
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорру, не дописал в примере. Естественно, последний group by
Код: plaintext
1.
  GROUP BY code, name
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917183
ACLeo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята ну такой запрос выдает не то,ч то надо. он группирует по двум полям - коду и названию, а так как название может быть разным то вместо одной записи он выдает две записи с одинаковым кодом но разными названиями, а мне нужна одна запись с кодом и названием.
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917215
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я б сказал как то так, но вопрос покатит ли это в твоем MySQL
Код: plaintext
1.
2.
3.
  SELECT a.name, b.sum1 
FROM naklad as a, (SELECT code as code1, sum(nds) as sum1, max(time) as time1 FROM naklad GROUP BY code) as b
WHERE a.time=b.time1 and a.code=b.code1
...
Рейтинг: 0 / 0
Группировка в SQL не работает :(
    #32917220
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В твоем MySQL имеется ввиду версия,
еси не покатит, то моно резты подзапроса во временную таблицу загнать
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Группировка в SQL не работает :(
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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