SQL - 选择+ MAx()
问题描述:
我想从销售文件中组合销售人员列表与销售人员上次销售日期。 请注意,销售员可能还没有做任何销售!SQL - 选择+ MAx()
SELECT
SLSNO,
SLSNAME
FROM
SALESMEN
SELECT
SLSNO,
max(SALEDATE)
FROM
SALESHEADER
WHERE
SALESMANNO = SLSNO
GROUP BY
SLSNO
ORDER BY
SLSNO
使用ibm db2。如果可能的话,更喜欢标准的ANSI SQL。
答
在第二种情况下,如果Latest Sale
尚未进行销售,它将为NULL
。
-- if you want all salesmen who have made a sale
SELECT
SLSNO,
SLSNAME,
MAX(SALEDATE) AS [Latest Sale]
FROM
SALESMEN AS s
JOIN
SALESHEADER AS h
ON
h.SLSNO = s.SLSNO
WHERE
SALESMANNO = SLSNO
GROUP BY
SLSNO,
SLSNAME
-- if you want all salesmen even if they don't have a sale
SELECT
SLSNO,
SLSNAME,
MAX(SALEDATE) AS [Latest Sale]
FROM
SALESMEN AS s
LEFT OUTER JOIN
SALESHEADER AS h
ON
h.SLSNO = s.SLSNO
WHERE
SALESMANNO = SLSNO
GROUP BY
SLSNO,
SLSNAME
尝试过这种变化。也许db/3不会让我使用max()这样的 – 2012-03-16 19:00:25
当然如果能让你像这样使用max() - 你是否包含了你所选择的'select'中的所有列, '子句? – Aprillion 2012-03-16 19:03:13
你会得到什么错误? – diaho 2012-03-16 19:04:49