[ТЕМА ЗАКРЫТА]
Опции темы
30.03.2011 09:55  
akonev
вот тебе для затравки, чтобы было про что думать. предполагается, что третье поле шаблона - последнее
Код:
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  
Vovantus
Цитата:
Сообщение от Andrew_Konev
вот тебе для затравки, чтобы было про что думать. предполагается, что третье поле шаблона - последнее
не, не последнее, оно может быть либо третье по счёту, либо четвёртое. там фишка в том, что есть поле "размер", например, для колец и цепей, а вот серёжки идут без указания размера. но бить начали именно так, поэтому нужно в запросе менять номер поля с весом, но оно точно не будет последним.
 
30.03.2011 10:23  
akonev
это вы зря, батенька, что поле скачет. вот то же самое для третьего, но не последнего.
Код:
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  
Vovantus
а как сюда добавить выборку по группе товаров в классификаторе? там же есть номера групп и номера подгрупп, может их как-нить впиндюрить в запрос?
 
30.03.2011 15:47  
akonev
Код:
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  
akonev
вот. развлекайся. не обалдеть, как изящно, но работает :)

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

сначала отдельно отбирается все из групп, где вес в шаблоне стоит третим, потом дописывается все из групп, где вес четвертым.
Код:
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  
Vovantus
Цитата:
Сообщение от Andrew_Konev
вот. развлекайся. не обалдеть, как изящно, но работает :)
строки не выбраны, пишет. ещё такой момент важный. вес изделия забивается в граммах. как правило, он содержит в себе дробную часть. а вот разделитель может быть либо , (запятая), либо . (точка), всё будет зависеть от раскладки клавиатуры в момент забивки. надрессировать оператора забивать что-то одно не получится, полюбому где-нить проскочит другое.
 
31.03.2011 07:54  
OlegON
Вот еще и поэтому лучше забивать в свойства, а в название, если уж так надо, самому добавлять сумму
 
31.03.2011 07:55  
Mtirt
Да, в свойствах явно можно выставить, что это значение - число.
 
31.03.2011 07:56  
Dim
Цитата:
Сообщение от Vovantus
строки не выбраны, пишет. ещё такой момент важный. вес изделия забивается в граммах. как правило, он содержит в себе дробную часть. а вот разделитель может быть либо , (запятая), либо . (точка), всё будет зависеть от раскладки клавиатуры в момент забивки. надрессировать оператора забивать что-то одно не получится, полюбому где-нить проскочит другое.
дык в шаблонах надо указать тип данных число и не париться. СМ неправильный разделитель сам не даст ввести
 
 


Опции темы


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

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