09.01.2020 13:26
УКМ_эксплуатант_2
 
УКМ4+стандартный экспорт 4
Вопрос дурацкий, но ответ не нашел
Таблицы receipt и reciept_item связаны по cash_id и id (receipt_header).
Запрос вида
SQL код:
SELECT a.cash_id,a.id,b.date,b.cash_number,b.local_number,a.item,a.name,a.stock_id,a.stock_name,b.ext_processed,b.ext_inomarki FROM receipt_item a
  LEFT JOIN receipt b ON 
(a.cash_id=b.cash_id AND a.receipt_header=b.id)
  
WHERE a.stock_id<>AND 
  
a.item IN 
(51,еще куча артикулов,776124); 
показывает то что надо изменить.
А изменить надо
receipt_item.stock_id, receipt_item.stock_name
и, в соответствующих строках receipt-а
ext_processed и ext_inomarki.
Сейчас делаю тремя запросами.
Первый:
SQL код:
UPDATE receipt areceipt_item b
  SET a
.ext_processed=999,
      
a.ext_inomarki=999
WHERE a
.cash_id=b.cash_id
  
AND a.id=b.receipt_header
  
AND b.stock_id<>1
  
AND b.item IN 
(51,еще куча артикулов,776124
Второй:
SQL код:
UPDATE receipt_item a
  SET a
.stock_id=0,
      
a.stock_name="Магазин"
WHERE
    a
.stock_id<>1
  
AND a.item IN 
(51,еще куча артикулов,776124
ну и третий:
SQL код:
UPDATE receipt SET 
  ext_processed
=0,
  
ext_inomarki=0
  WHERE ext_processed
=999
И кажется мне, что все изменения можно сделать одним "хитрым" UPDATE-ом.
Можно?
09.01.2020 14:02
vdm
 
Что-то не пойму, почему вам в первом-же запросе не поменять обе таблицы?

SQL код:
 UPDATE receipt areceipt_item b
   SET a
.ext_processed=0,
       
a.ext_inomarki=0,
       
b.stock_id=0,
       
b.stock_name="Магазин"
WHERE ... 

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