30.03.2011 09:55
вот тебе для затравки, чтобы было про что думать. предполагается, что третье поле шаблона - последнее
Код:
select c.name, substr(c.name,instr(c.name,chr(9),1,2)+1) as ves, g.quantity
from smcard c, smgoods g
where c.article=g.article
  and g.quantity<>0
по месту хранения сам условие добавь на smgoods, если оно не одно
30.03.2011 10:10
Цитата:
Andrew_Konev вот тебе для затравки, чтобы было про что думать. предполагается, что третье поле шаблона - последнее
не, не последнее, оно может быть либо третье по счёту, либо четвёртое. там фишка в том, что есть поле "размер", например, для колец и цепей, а вот серёжки идут без указания размера. но бить начали именно так, поэтому нужно в запросе менять номер поля с весом, но оно точно не будет последним.
30.03.2011 10:23
это вы зря, батенька, что поле скачет. вот то же самое для третьего, но не последнего.
Код:
select c.name, substr(c.name,instr(c.name,chr(9),1,2)+1,instr(c.name,chr(9),1,3)-instr(c.name,chr(9),1,2)-1) as ves, g.quantity
from smcard c, smgoods g
where c.article=g.article
  and g.quantity<>0
30.03.2011 14:34
а как сюда добавить выборку по группе товаров в классификаторе? там же есть номера групп и номера подгрупп, может их как-нить впиндюрить в запрос?
30.03.2011 15:47
Код:
select 
  replace(c.name,chr(9),' ') as name, 
  substr(c.name,instr(c.name,chr(9),1,2)+1,instr(c.name,chr(9),1,3)-instr(c.name,chr(9),1,2)-1) as ves, 
  g.quantity,
  v.tree,
  RTRIM(v.name1||'/'||v.name2||'/'||v.name3||'/'||v.name4||'/'||v.name5||'/'||v.name6||'/'||v.name7||'/'||v.name8||'/'||v.name9||'/'||v.name10||'/','/') as gr
from smcard c, smgoods g, svcardtreesplit v
where c.article=g.article
  and v.id=c.idclass
  and g.quantity<>0
30.03.2011 16:20
вот. развлекайся. не обалдеть, как изящно, но работает :)

поле "Вес" (у тебя "МАССА", замени в двух местах) в шаблоне не должно быть последним, а то вес не выберется. делать красиво мне под вечер лениво.

сначала отдельно отбирается все из групп, где вес в шаблоне стоит третим, потом дописывается все из групп, где вес четвертым.
Код:
select 
  replace(c.name,chr(9),' ') as name, 
  substr(c.name,instr(c.name,chr(9),1,2)+1,instr(c.name,chr(9),1,3)-instr(c.name,chr(9),1,2)-1) as ves, 
  g.quantity,
  v.tree,
  RTRIM(v.name1||'/'||v.name2||'/'||v.name3||'/'||v.name4||'/'||v.name5||'/'||v.name6||'/'||v.name7||'/'||v.name8||'/'||v.name9||'/'||v.name10||'/','/') as gr
from smcard c, smgoods g, svcardtreesplit v
where c.article=g.article
  and v.id=c.idclass
  and g.quantity<>0
  and c.idclass in(
    select a.id
      from sacardnameformdef f, sacardclassaux a
      where f.item=2
      and f.formid=a.nameformid
      and f.name='Вес')
union
select 
  replace(c.name,chr(9),' ') as name, 
  substr(c.name,instr(c.name,chr(9),1,3)+1,instr(c.name,chr(9),1,4)-instr(c.name,chr(9),1,3)-1) as ves, 
  g.quantity,
  v.tree,
  RTRIM(v.name1||'/'||v.name2||'/'||v.name3||'/'||v.name4||'/'||v.name5||'/'||v.name6||'/'||v.name7||'/'||v.name8||'/'||v.name9||'/'||v.name10||'/','/') as gr
from smcard c, smgoods g, svcardtreesplit v
where c.article=g.article
  and v.id=c.idclass
  and g.quantity<>0
  and c.idclass in(
    select a.id
      from sacardnameformdef f, sacardclassaux a
      where f.item=3
      and f.formid=a.nameformid
      and f.name='Вес')
31.03.2011 01:00
Цитата:
Andrew_Konev вот. развлекайся. не обалдеть, как изящно, но работает :)
строки не выбраны, пишет. ещё такой момент важный. вес изделия забивается в граммах. как правило, он содержит в себе дробную часть. а вот разделитель может быть либо , (запятая), либо . (точка), всё будет зависеть от раскладки клавиатуры в момент забивки. надрессировать оператора забивать что-то одно не получится, полюбому где-нить проскочит другое.
31.03.2011 07:54
Вот еще и поэтому лучше забивать в свойства, а в название, если уж так надо, самому добавлять сумму
31.03.2011 07:55
Да, в свойствах явно можно выставить, что это значение - число.
31.03.2011 07:56
Цитата:
Vovantus строки не выбраны, пишет. ещё такой момент важный. вес изделия забивается в граммах. как правило, он содержит в себе дробную часть. а вот разделитель может быть либо , (запятая), либо . (точка), всё будет зависеть от раскладки клавиатуры в момент забивки. надрессировать оператора забивать что-то одно не получится, полюбому где-нить проскочит другое.
дык в шаблонах надо указать тип данных число и не париться. СМ неправильный разделитель сам не даст ввести
Часовой пояс GMT +3, время: 02:15.

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