2016-03-24 3 views
0

У меня есть поле Количество (целое число) и поле Имя (строка). Как разделить только продукт C на три, чтобы вернуть значение нового количества? Я получаю с ошибками для смешивания строк и целых типов со всем, что я пробовал.Как делить значение с условием строки?

Name  Quantity New Quantity 
Product A  5    5 
Product B  35    35 
Product C  27    9 

Вот запрос, я работаю с:

SELECT 
     chg.name 
     , sim.Description  
     , loc.location_name 
     , Service_Date = CONVERT(DATE, chg.begin_date_of_service) 
     , sim.Service_Type 
     , sim.Visit_Type 
     , sim.Contraceptive_Type 
     , sim.Lab_Type 
     , sim.Immunization_Type 
     , chg.quantity 

FROM 
     charges chg 
     INNER JOIN PPMNS_Service_Item_Info sim ON chg.name = sim.name 
      AND chg.begin_date_of_service BETWEEN sim.SIM_Eff_Date AND sim.SIM_Exp_Date 
      AND ((chg.begin_date_of_service BETWEEN sim.Billing_NDC_Eff_Date AND sim.Billing_NDC_Exp_Date) OR sim.Billing_NDC_Eff_Date = '') 
     INNER JOIN location_mstr loc ON chg.location_id = loc.location_id 
WHERE 
     chg.link_id IS NULL 
     AND sim.Visit_Rank < 50 
+1

пост ваша попытка. также объясните, почему вы хотите разделить только количество продукта c. –

+1

Можете ли вы показать нам, что вы сделали до сих пор? Вам нужно показать, что вы пробовали, чтобы заставить нас помочь вам, были не просто волшебным кодовым компьютером здесь, вам нужно показать свои усилия и где ваши ошибки/проблемы возникают, когда вы публикуете. – GabrielVa

+0

if [Name] = 'Product A' THEN div ([количество], 3) else [количество] END – Greg

ответ

0

Это на самом деле не так уж трудно сделать. Судя по вашим тегам, вы, скорее всего, делаете это в программе SQL, например, Razor или что-то в этом роде.

Select Quantity, (Quantity/3) 
From table 
where name = "PRODUCT C" 

Это должно быть все, что нужно.

+0

Спасибо, что посмотрели, NWcic! Я добавил свой запрос выше, вы знаете, как я включил в него свой язык? – Greg

+0

Goordon Linoff имеет правильную идею о том, как включить его, чуть ниже меня здесь. – NWcis

0

Если я правильно понимаю, вы бы использовать case заявление:

select . . . 
     (case when name = 'PRODUCT C' then chg.quantity/3 else chg.quantity 
     end) as quantity 
. . . 

Обратите внимание, что SQL Server делает целочисленное деление, если оба операнда являются целыми числами. Если quantity является целым числом, и вы хотите десятичных знаков, тогда вы можете разделить на 3.0 вместо 3.

0

Вы можете добавить следующую колонку в заявление Выберите, если вы используете SQL Server 2012 или более поздней версии

IIF (имя = 'ПРОДУКТ C', Количество/3,0, количество) newQuantity

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