2014-02-15 3 views
3

Это мой запрос, который я хочу, чтобы вставить значение, которое должно быть выбрано из другой таблицы:Вставить в и выберите сочетание не работает

insert into payment_details_kohin(installment_no) 
values(
select count(installment_amount)+2 
from kohin_plan.payment_details_insert 
where customer_id='KBP100058' 
) 

... но его дает мне ошибку:

Msg 515, Level 16, State 2, Line 1 Cannot insert the value NULL into column 'customer_id', table 'kohinoor_rdfd.kohin_plan.payment_details_kohin'; column does not allow nulls. INSERT fails. The statement has been terminated.

Когда я пытаюсь следующий запрос:

insert into payment_details_kohin(installment_no) 
values(
select count(installment_amount)+2 
from kohin_plan.payment_details_insert 
where customer_id='KBP100058' 
) 

... это дает мне следующую ошибку

Msg 156, Level 15, State 1, Line 2 
Incorrect syntax near the keyword 'select'. 
Msg 102, Level 15, State 1, Line 3 
Incorrect syntax near ')'. 
+1

дорогой друг проверить мой пост будет работать вы – Developerzzz

+0

Просто удалите 'значения' – Hoh

ответ

2

Ваша проблема заключается в том, что у вас есть не-NULL идентификатор клиента. Вам нужно, чтобы вставить его в таблицу, а также:

insert into payment_details_kohin(customer_id, installment_no) 
    select customer_id, count(installment_amount)+2 
    from kohin_plan.payment_details_insert 
    where customer_id='KBP100058'; 

Однако, когда я вижу такую ​​inserts, иногда то, что действительно хотел это обновление:

update payment_details_kohin 
    set installment_no = (select count(installment_amount) + 2 
          from kohin_plan.payment_details_insert 
          where payment_details_kohin.customer_id = payment_details_insert.customer_id 
         ) 
    where customer_id = 'KBP100058'; 
2

Вам не нужна оговорка Values ​​здесь просто сделать следующее

INSERT INTO payment_details_kohin(installment_no) 
SELECT ISNULL(COUNT(installment_amount), 0) + 2 
FROM kohin_plan.payment_details_insert 
WHERE customer_id = 'KBP100058' 
1

Дорогой друг, когда вы вставляете значение в одной таблице из другой таблицы или с помощью выбора для inseting, то вы не должны spacity " Значение»Ключевое слово

так просто сделать следующее

INSERT INTO payment_details_kohin(installment_no) 
SELECT count(installment_amount) + 2 
FROM kohin_plan.payment_details_insert 
WHERE customer_id = 'KBP100058' 
Смежные вопросы