[ОТВЕТИТЬ]
Опции темы
16.10.2015 03:36  
Dim
не соображаю уже ((
есть 2 таблицы (рис.1-Таб1 и рис.2-Таб2 (условно))
нужно выбрать
Таб1.item, sum(Таб1.Total), Сум(Таб2.increment)

соединение по полям cash_id и Таб1.id=Таб2.receipt_item
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 344
Размер:	9.0 Кб
ID:	6480   Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 333
Размер:	3.6 Кб
ID:	6481  
 
16.10.2015 06:43  
Mtirt
Я подозреваю, что соединять надо еще и по store.
Ну и group by (Таб1.item) добавить...
 
16.10.2015 07:08  
OlegON
Ты бы выложил экспорт маленького кусочка каждой таблицы с кодом создания, глядя раздельно на картинки, не пробуя, трудно что-то сказать и даже понять, в чем проблема. Мож, не проснулся еще :)
 
16.10.2015 08:58  
vdm
Общую сумму продаж и скидок на артикул нужно?
Проблема в том, что продажи считает криво, выдает больше чем на самом деле? Сделай подзапрос, где возьмешь item и increment, а выше добавишь total.

Кстати что это за таблицы? А то в trm_out_receipt_item есть готовая сумма discount.
 
16.10.2015 09:11  
Павел Сосновских
видимо это таблицы из бд конвертера стандартный экспорт 4
таблицы receipt_item и receipt_item_discount
поля правильные
связывать надо left join'ом
ну и group by receipt_item.item добавить в конце
 
16.10.2015 14:17  
Dim
да. это база стандартного импорта. запрос примерно такой:

SQL код:
select c.classifclient,r.client,r.type,sum(r.amount_sum,sum(rd.increment_inc from receipt_item ri
left join receipt r on r
.id=ri.receipt_header and r.cash_id=ri.cash_id
left join receipt_item_discount rd on rd
.receipt_item=ri.id and rd.cash_id=ri.cash_id
left join clients c on c
.id=r.client
where r
.date between
STR_TO_DATE
('2015-10-15 00:00:00''%Y-%m-%d %H:%i:%s'
AND 
STR_TO_DATE('2015-10-15 23:59:59''%Y-%m-%d %H:%i:%s')
and 
ri.classif not like '.51%'
and r.client is not null
and (r.type=or r.type=or r.type=4)
and 
r.result=0
group by  c
.classifclient,r.client,r.type
 
16.10.2015 14:18  
Dim
проблема в том, что когда на чек идет 2 скидки, то сумма чека задваивается ((
 
16.10.2015 14:28  
Dim
описания таблиц собственно тут
 
16.10.2015 15:34  
vdm
Этак?

SQL код:
select t.classifclient,t.client,t.type,sum(t.total_sumt._inc 
from 
(
select c.classifclient,r.client,r.typeri.totalsum(rd.increment_inc 

...

group by  c.classifclient,r.client,r.type,ri.cash_id,ri.id
t
group by  t
.classifclient,t.client,t.type

 
"Спасибо" vdm от:
16.10.2015 18:59  
Павел Сосновских
я бы просто поменял r.amount на ri.real_amount(сумма позиции со всеми скидками) или на ri.total(без скидок)
ну и немного правок от себя

т.е.:
Код:
select c.classifclient,r.client,r.type,sum(ri.real_amount) _sum,sum(rd.increment) _inc 
from receipt r -- логичней идти от чека
left join receipt_item ri on r.id=ri.receipt_header and r.cash_id=ri.cash_id
left join receipt_item_discount rd on rd.receipt_item=ri.id and rd.cash_id=ri.cash_id
inner join clients c on c.id=r.client -- клиент в чеке может быть только один
where r.date between '2015-10-15 00:00:00' AND '2015-10-15 23:59:59' -- дата-время итак в таком формате
and ri.classif not like '.51%'
and r.client is not null
and r.type in (0,1,4)
and r.result=0
group by c.classifclient,r.client,r.type;
 
"Спасибо" Павел Сосновских от:
 


Опции темы



Часовой пояс GMT +3, время: 16:45.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.