2013-03-13 53 views
0

在MS SQL有没有一种方法,我可以添加一个条件列的联合查询,如下面的一个基于第一列的值?如何将条件列添加到MS SQL中的联合查询中?

基本上即时尝试添加bin值作为第四列,如果部分值是像('%XX')或让它显示0,到目前为止,我只能够添加另一列镜像MAX( part_bins.bin)列,如果代码不符合。

SELECT part_bins.part AS part, 
     SUM(part_bins.free_stock) AS FREE_STOCK, 
     MAX(PART_BINS.BIN) AS Bin 
FROM part_bins 
LEFT OUTER JOIN part ON part_bins.part = part.part 
WHERE (part_bins.free_stock > 0) 
GROUP BY part_bins.part 
UNION 
SELECT part.master_part AS part, 
     SUM(part_bins.free_stock) AS FREE_STOCK, 
     MAX(PART_BINS.BIN) AS Bin 
FROM part_bins 
LEFT OUTER JOIN part ON part_bins.part = part.part 
WHERE (part_bins.free_stock > 0) 
GROUP BY part.master_part 
+0

甚至可以在此查询中添加,只有您必须在两个查询中添加列。 – Sharad 2013-03-13 11:45:37

回答

1

您可以使用CASE声明,你必须将它添加两个查询中添加的第四列等;

--4th Column for both queries, if bin_value is a numeric type 
case when part_value like '%XX' then bin_value 
     else 0 end as fourth_column 

--4th Column for both queries, if bin_value is a string type 
case when part_value like '%XX' then bin_value 
     else '0' end as fourth_column