|
|
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
На такой вот запрос " 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). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 13:25 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
Ну ясно же написано, на понятном ангельском. По правилам, все поля, которые перечислены в SELECT и не входят в групповые функции, д.б. перечислены в GROUP BY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 13:28 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
Ладно, представим что с этим разобрались. А как быть в данной ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 15:11 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
Какое наименование выводить то надо, еси группируешь по kod_prod то каждой такой группе соответствует несколько наименований ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 15:19 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
А как быть в данной ситуации Не очень понял ситуацию. Если надо группировать по коду, а выводить только наименование, то код в SELECT не упоминаешь, а GROUP BY kod_prod, naimen (т.е. в GROUP BY м.б. поля, не перечисленные в SELECT) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 15:28 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
{Какое наименование выводить то надо, еси группируешь по 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" - ругается как я написал в первый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 16:28 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
1. Про изменение названия товара не было сказано ни слова 2. Т.е. в таблице могут существовать несколько товаров с одним кодом? 3. А как определять "последнее"? 4. У меня была похожая задача, когда могли поменяться параметры товара, но розничный код оставался прежним. Но при этом были 2 поля - дата активации и дата деактивации. Т.е. если параметры менялись, то старый деактивировался, а новый активировался, т.е. в каждый момент времени мог быть только ОДИН активный товар с данным кодом. В этом случае последний определяется очень просто (как вариант - прежнее значение можно переносить в таблицу истории) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 16:39 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
tru55 ты чуть не так понял. Два товара с одинаковым кодом в базе товаров нет Создается накладная, товар берется из базы товаров. А через неделю название товара поменялось и опять создается накладная. Код в базе накладных один и тот же, а вот название поменялось. Мне надо сделать отчет в котором показать сколько какого товара было продано. Поэтому группировать надо по коду, а вот в отчет выводить название товара. Запрос необходимо делать в базе накладных. Хоть чуть понятно? если че спроси объясню еще. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:03 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
иначе пользоваться подзапросами, кажись последние версии MySQL их понимают, для определения последнего в таблицу нуно вставлять timestamp, который будет указывать когда внесена запись ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:04 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
А что, название товара присутствует в накладной? Вообще-то это неправильно, там должна быть только ссылка (id) на товар, соответственно будет только 1 название товара. Или как я сказал - тогда название товара будет поставляться в зависимости от соотношения дат его активности и даты накладной (ну или только того, который активный в наст. момент). Ну, а если надо обязательно последнее наименование, то как сказал предыдущий оратор - через подзапрос, типа Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:18 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
Понимаешь в чем вопрос. Если я ставлю такой запрос " 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", он группирует и по названию товара. А если убрать группировку по названию выдает ошибку о которой я писал ранее. Может попробовать подключитть вторую базу с товарами, хрен его как оно делается!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:41 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
а чем вариант с подзапросом то не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:45 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
demon11 если можешь напиши код :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:50 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
дык tru55 уже написал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:51 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
При таком запросе выдает ошибка о которой я писал выше :). группироваться должно только то что есть в select ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 18:55 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
Сорру, не дописал в примере. Естественно, последний group by Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 19:01 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
Ребята ну такой запрос выдает не то,ч то надо. он группирует по двум полям - коду и названию, а так как название может быть разным то вместо одной записи он выдает две записи с одинаковым кодом но разными названиями, а мне нужна одна запись с кодом и названием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 19:04 |
|
||
|
Группировка в SQL не работает :(
|
|||
|---|---|---|---|
|
#18+
я б сказал как то так, но вопрос покатит ли это в твоем MySQL Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2005, 19:26 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32917133&tid=1854338]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
232ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 579ms |

| 0 / 0 |
