2015-09-14 2 views
-4

Я разыскиваю SQL для выбора записей на ниже основе:SQL логики для выбора записей

заказ Таблицы:

order total item 
1   2 
2   1  
3   2 

подробно порядок таблица:

Order Item (QTY = 1 for all) 
1  A 
1  B 
2  A 
3  A 
3  B 
3  C 

Инвентарь таблица:

Item QTY 
A  1 
B  1 
C  1 

Если есть o rder не выполняет QTY, мой SQL должен удалить этот порядок.

, пожалуйста, предложите, как я могу написать этот SQL.

+0

показать ожидаемый результат и пометить используемый вами движок базы данных –

+3

Это хорошее место для начала: [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to- ask) – Marusyk

+0

С чем вы столкнулись? Вы ожидаете, что кто-то еще придумает решение для вас? – Mithrandir

ответ

0

Я думаю, вы пытаетесь написать чек на каждую покупку или что-то в этом роде. Итак, вам нужен скрипт, который проверяет наличие достаточного количества предметов для совершения покупки (одна строка). Что-то вроде ниже трюк (PS: это диалект t-sql, я не уверен, что оставленное внешнее соединение на вашем языке, потому что ваш диалект не указан).

select a.[order], a.item, b.Qty, b.Qty-1 as Qty_After_Purchase 
from Order_Detail as a 
left outer join Inventory_Table as b 
on a.item=b.item 
where (b.Qty-1)<0 

И затем убедитесь, что покупка не выполнена, или запрос откат, или положить в список ожидания, или что-то еще. Остерегайтесь, это одна строка. Если вам нужно что-то еще, чем заявить, что в вашем вопросе.

Теперь, я не 100% уверен, что это то, что вы хотите ...

PS: в T-SQL, вы должны поместить 'порядок' между '[' и ']', потому что elwise dbms видит его как конкретную команду.

+0

Я уверен, что этот sql не работает, так как в '' '' '' '' '' –

+0

нет предложения 'on', хе-хе, хороший один @A ツ. Происхождение каждого винта: без тестирования перед доставкой ... :) Я сменим его в одно мгновение с заявлением ON к нему. – cybork

+0

b.Qty-a.item как Qty_After_Purchase; здесь a.item вы имеете в виду a.QTY ?? потому что a.item является char. – Agnostic

Смежные вопросы