2013-03-22 2 views
0

У меня есть эта таблица.Рассчитать значение процентного sql-сервера

orderid processid uid user  processdesc companyname  ordervalue perwet orgid 
    1 1 16 Damayanti Enquiry Synechron 33000 10.00 NULL 
    1 2 4 Meghana Requirement Synechron 33000 10.00 NULL 
    1 3 5 Yogini Proposal FollowUp Synechron 33000 10.00 NULL 
    1 4 5 Yogini Order Synechron 33000 20.00 NULL 
    1 5 4 Meghana Vendor Management Synechron 33000 10.00 NULL 
    1 6 1 anaghantech Collection Synechron 33000 20.00 NULL 
    2 1 4 Meghana Enquiry test 100000 10.00 NULL 
    2 2 4 Meghana Requirement test 100000 10.00 NULL 
    2 3 5 Yogini Proposal FollowUp test 100000 10.00 NULL 
    2 4 4 Meghana Order test 100000 20.00 NULL 
    2 5 4 Meghana Vendor Management test 100000 10.00 NULL 
    2 6 1 anaghantech Collection test 100000 6.67 NULL 
    2 6 4 Meghana Collection test 100000 6.67 NULL 
    2 6 16 Damayanti Collection test 100000 6.67 NULL 
    5 1 16 Damayanti Enquiry FASTER HYDRAULICS PVT. LTD. 700000 10.00 NULL 
    5 2 16 Damayanti Requirement FASTER HYDRAULICS PVT. LTD. 700000 10.00 NULL 
    5 3 16 Damayanti Proposal FollowUp FASTER HYDRAULICS PVT. LTD. 700000 10.00 NULL 
    5 4 16 Damayanti Order FASTER HYDRAULICS PVT. LTD. 700000 20.00 NULL 

Я хочу добавить еще один столбец в таблице

как perwet/100 * ordervalue

используя запрос, указанный ниже

SELECT a.orderid, 
     b.processid, 
     b.uid, 
     d.username, 
     c.processdesc, 
     a.companyname, 
     b.ordervalue, 
     b.perwet, 
     b.orgid 
FROM ordermaster a, 
     temp_calpoints1 b, 
     process c, 
     userinfo d 
WHERE a.orderid = b.orderid 
     AND c.processid = b.processid 
     AND d.uid = b.uid 
ORDER BY b.orderid, 
      b.processid, 
      b.uid; 
+0

Будет ли это простой расчетный столбец на основе значений в одной строке? Затем вы можете посмотреть, как использовать http://msdn.microsoft.com/en-us/library/ms191250(v=sql.105).aspx –

ответ

0

Вы можете использовать VIEW вместо добавления нового столбца ваш стол:

CREATE VIEW dbo.MyView 
AS 
SELECT a.orderid, 
     b.processid, 
     b.uid, 
     d.username, 
     c.processdesc, 
     a.companyname, 
     b.ordervalue, 
     b.perwet, 
     b.orgid, 

     MyField = b.perwet/100 * b.ordervalue 

FROM ordermaster a, 
     temp_calpoints1 b, 
     process c, 
     userinfo d 
WHERE a.orderid = b.orderid 
     AND c.processid = b.processid 
     AND d.uid = b.uid 
+1

Не ненавидите свое решение, но почему вы делаете свое соединение в предложение where, а не использование объединений? Это старая вещь? – Scotch

+0

@Scotch спросить OP об этом. Это его запрос –

+0

Gotcha, я просто вижу, что люди так много здесь делают, мне было интересно, не существуют ли его старые привычки от времени, когда синтаксис соединения не существовал. – Scotch

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