2013-03-22 146 views
0

我有这张表。计算百分比sql server的值

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 

我想用下面

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 – 2013-03-22 05:41:37

回答

0

可以使用的,而不是添加一个新列查看给出的查询一个多列添加到该表

perwet/100 * ordervalue

您的表格:

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 2013-03-22 06:04:57

+0

@Scotch询问OP。这是他的查询 – 2013-03-22 06:05:49

+0

Gotcha,我只是看到人们在这里做了很多,我想知道从加入语法时的旧习惯可能不存在。 – Scotch 2013-03-22 06:08:47