我正在编写一个如下所示的存储过程:
SELECT Replace(c_invoice, Char(13) + Char(10), ''),
c_uom1,
c_uom2
FROM @invoice_TABLE AS invoice
INNER JOIN @uom1_TABLE AS uom1
ON invoice.ID = uom1.ID
INNER JOIN @uom2_TABLE AS uom2
ON uom1.ID = uom2.ID
WHERE uom1.ID = 4
但我希望WHERE子句使用最高的uom1.ID号码 - 有人可以告诉我该怎么做吗?
答案 0 :(得分:1)
您可以使用WHERE
TOP WITH TIES... ORDER BY
SELECT TOP (1) WITH TIES replace(c_invoice, char(13) + char(10), ''),
c_uom1,
c_uom2
FROM @invoice_TABLE AS invoice
INNER JOIN @uom1_TABLE AS uom1
ON invoice.ID = uom1.ID
INNER JOIN @uom2_TABLE AS uom2
ON uom1.ID = uom2.ID
ORDER BY uom1.ID DESC
答案 1 :(得分:0)
SELECT replace(c_invoice,char(13) + char(10), ''), c_uom1, c_uom2
FROM @invoice_TABLE AS invoice
INNER JOIN @uom1_TABLE as uom1 ON invoice.ID = uom1.ID
INNER JOIN @uom2_TABLE as uom2 ON uom1.ID = uom2.ID
WHERE uom1.ID = (SELECT MAX(ID) FROM @uom1_TABLE)
答案 2 :(得分:0)
试试这个,
SELECT replace(c_invoice,char(13) + char(10), ''), c_uom1, c_uom2 FROM @invoice_TABLE AS invoice
INNER JOIN (select MAX(ID) AS ID FROM @uom1_TABLE) as uom1 ON invoice.ID = uom1.ID
INNER JOIN @uom2_TABLE as uom2 ON uom1.ID = uom2.ID