2016-11-07 2 views
0

OK Люди. Я только новичок в написании этих запросов, так что легко на меня ... Я хочу найти Min Date между 2 полями, я разработал, как это сделать для SUM, но не MIN (видимо + не работает для мин ...) Как вы увидите ниже, первая строка (строка в **) неверна (я знаю, что не должно быть a, но я отказался). Следующая строка - это совершенство и именно то, что я пытаюсь достичь с помощью кода MIN ... В основном у меня есть 2 таблицы (ScanLine и Inventory). Я пытаюсь получить Min ProductionDate из обеих этих таблиц, на том же линия ...SQL Server 2014 - Как найти Min Date между 2 таблицами

** Я не хочу использовать псевдонимы для соединения и я хотел бы избежать с помощью UNION, если это возможно **

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

Вы можете использовать case, чтобы получить минимум из двух столбцов :

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 из обеих этих таблиц в том же столбце». Это может быть неточным, но предоставленный запрос имеет два значения в двух разных столбцах. –

Смежные вопросы