0

MS SQLでは、最初の列の値に基づいて、以下のようなユニオンクエリに条件付き列を追加する方法はありますか?

基本的に、パーツ値が('%XX')のようであるか、0を表示する場合、bin値を4番目の列として追加しようとしていますが、これまでのところ、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
4

1 に答える 1

1

ステートメントを使用できCASE、両方のクエリにそれを追加して、次のような 4 番目の列を追加する必要があります。

--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
于 2013-03-13T11:44:49.447 に答える