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
Просмотров: 601
Размер:	9.0 Кб
ID:	6480   Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 599
Размер:	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

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, время: 05:08.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.