2015-09-14 80 views
0

我已经工作了这2天,我不能例如批准,拒绝和待3个不同的状态结合我的表值表的所有值..显示,即使没有在SQL

在此查询它只显示所有已批准的

Select * from 
    productdesignapproval a, 
    productinformation b, 
    department c, 
    subdivision e, 
    class f, 
    subclass g, 
    productseason h, 
    year i, 
    productstylecode j, 
    productgenericnumber k, 
    users l 
    WHERE 
    a.productinformationID = b.productinformationID AND 
    b.departmentID = c.departmentID AND 
    b.subdivisionID = e.subdivisionID AND 
    b.classID = f.classID AND 
    b.subclassID = g.subclassID AND 
    b.productseasonID = h.productseasonID AND 
    b.yearID = i.yearID AND 
    a.productinformationID = j.productinformationID AND 
    a.productinformationID = k.productinformationID AND 
    l.userID = a.designerID AND a.approvalstatus = 'Approved' 

如果我改变了a.approvalstatus待定状态没有将出现

数据库是这样的,如果设计被批准有特定 productstylecodeĴ值,产品genericnumber K,如果不是,这是我的查询

Select * from 
    productdesignapproval a, 
    productinformation b, 
    department c, 
    subdivision e, 
    class f, 
    subclass g, 
    productseason h, 
    year i, 
    users l 
    WHERE 
    a.productinformationID = b.productinformationID AND 
    b.departmentID = c.departmentID AND 
    b.subdivisionID = e.subdivisionID AND 
    b.classID = f.classID AND 
    b.subclassID = g.subclassID AND 
    b.productseasonID = h.productseasonID AND 
    b.yearID = i.yearID AND 
    l.userID = a.designerID AND 
    a.approvalstatus != 'Approved' 

如果该值挂起/拒绝没有productstylecode和genericnumber。

问题如何将2个表格合并为1个表格?所以我可以显示所有批准的产品样式代码和通用编号以及所有待批准和拒绝的产品样式代码和通用编号。谢谢!

+0

您可以用'union'但是请注意,它们必须具有相同的列 – Sherlock

+2

[不良习惯踢:使用旧样式的JOIN(HTTP: //sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx) - 旧式*逗号分隔的表格样式列表*样式在ANSI-** 92 ** SQL标准(**超过20年**之前)中被替换为* proper * ANSI'JOIN'语法,并且不鼓励使用它 –

回答

1

看来你需要这样的查询东西

SELECT * FROM 
productdesignapproval a 
JOIN productinformation b ON a.productinformationID = b.productinformationID 
JOIN department c ON b.departmentID = c.departmentID 
JOIN subdivision e ON b.subdivisionID = e.subdivisionID 
JOIN class f ON b.classID = f.classID 
JOIN subclass g ON b.subclassID = g.subclassID 
JOIN productseason h ON b.productseasonID = h.productseasonID 
JOIN year i ON b.yearID = i.yearID 
JOIN users l ON l.userID = a.designerID 
LEFT JOIN productstylecode j ON a.productinformationID = j.productinformationID AND a.approvalstatus = 'Approved' 
LEFT JOIN productgenericnumber k ON a.productinformationID = k.productinformationID AND a.approvalstatus = 'Approved' 
+0

我还有另一个问题,您已经显示了所有已批准,正在等待并被拒绝,但处于未决状态并被拒绝,PIF#未显示。但在批准它工作正常?你能再帮助我吗? – Somi