2016-11-07 10 views
0

OK People。私はこれらのクエリを書いて初めてのことなので、私の上で簡単に行く... 私は2つのフィールドの間に最小の日付を探したい、私はSUMではなく、MINではない方法を演出した(明らかに+は動作しませんmin ...) 次のように、最初の行(**の行)は正しくありません(私はそこには存在しないはずですが、私はあきらめました)。次の行は完璧であり、正確に私はMINコードで達成しようとしているものです... 基本的に私は2つのテーブル(ScanLineとInventory)を持っています。私はMin ProductionDateを両方のテーブルから取得しようとしていますライン...SQL Server 2014 - 2つのテーブル間の最小日付の検索方法

**私は、次の2つの列から最小値を取得するためにcaseを使用することができます

SELECT (SELECT min(inventory.productiondate)), 
     (SELECT min(scanline.productiondate)) AS OldDate, 
     (SELECT sum(Inventory.NetWeight)) + (SELECT sum(scanline.weight)) AS Wgt, 
     sum(inventory.units) AS Qty, 
     count(inventory.palletbarcode) AS Pallets 
FROM scowms.inventory 
     LEFT OUTER JOIN 
     scowms.scanline 
     ON scowms.inventory.barcode = scowms.scanline.barcode 
WHERE inventory.locationbarcode = '2D03D'; 
+0

質問を編集して、サンプルデータと希望の結果を提供してください。 –

+0

両方のテーブルから独立した最小値を入力したい場合は、参加する必要はありません。 –

答えて

0

**参加し、私は可能であればUNIONを使用して避けたいためにエイリアスを使用したくありません:

select (case when min(i.productiondate) < min(s.productiondate) 
      then min(i.productiondate) 
      else coalesce(min(s.productiondate), min(i.productiondate)) 
     end) 
from scowms.inventory i left join 
    scowms.scanline s 
    on i.barcode = s.barcode 
where i.locationbarcode = '2D03D'; 

テーブルエイリアス良いことです。彼らは、クエリをより簡単に書いて読めるようにします。

+0

ゴードン・リノフは私が質問した質問から、最低限の日付を2列 "Min ProductionDate、これらのテーブルの両方から、同じ行に..."と尋ねました。私が間違っている場合、私を修正してください。 –

+0

@HardikParmar。 。 。文脈において、私はそれを「同じ列のこれらのテーブルの両方からのMin ProductionDate」と解釈しました。これは正確ではないかもしれませんが、提供されたクエリは2つの異なる列に2つの値を持ちます。 –

関連する問題