SQL Server选择加入
我正在使用两张桌子:SQL Server选择加入,sql,sql-server,sql-server-2008,join,Sql,Sql Server,Sql Server 2008,Join,我正在使用两张桌子: 包含代码(主键)、可用数量和位置字段的库存 发票历史记录,包含发票编号、项目代码(与上面的代码相对应)和销售数量字段 我需要生成一个报告,其中包括该项目的代码,该项目已购买的次数,在库存和位置可用的数量 到目前为止,我一直在尝试这个 SELECT CODE, SALES, QTY_AVAILABLE, LOCATION FROM INVENTORY JOIN ( SELECT ITEMCODE, SUM(QTY_SOLD) AS SALES, FROM INVOICE
- 包含代码(主键)、可用数量和位置字段的库存
- 发票历史记录,包含发票编号、项目代码(与上面的代码相对应)和销售数量字段
SELECT CODE, SALES, QTY_AVAILABLE, LOCATION
FROM INVENTORY JOIN
(
SELECT ITEMCODE, SUM(QTY_SOLD) AS SALES,
FROM INVOICE_HISTORY
GROUP BY ITEMCODE
)
ON (CODE = ITEMCODE))
但它不起作用。有人能帮我理解我做错了什么吗
谢谢。试试这个
SELECT CODE, SALES, QTY_AVAILABLE, LOCATION
FROM INVENTORY Inv INNER JOIN INVENTORY INVOICE_HISTORY InvHis
on Inv.CODE = InvHis.ITEMCODE
试试这个
SELECT CODE, SALES, QTY_AVAILABLE, LOCATION
FROM INVENTORY Inv INNER JOIN INVENTORY INVOICE_HISTORY InvHis
on Inv.CODE = InvHis.ITEMCODE
实际上,您不需要在join中写出整个sub-select语句。您需要为表名使用别名,然后只需选择以别名为前缀的所需列。它将是这样的:
SELECT INV.CODE, INV.SALES, INV.QTY_AVAILABLE, INV.LOCATION, HIS.ITEMCODE, HIS.SUM(QUANTITY) AS SALES
FROM INVENTORY AS INV JOIN INVOICE_HISTORY AS HIS ON INV.CODE = HIS.ITEMCODE
关键是,您给库存表一个INV别名,给发票历史记录表一个HIS别名,然后在同一select语句中引用这两个别名
希望有帮助 实际上,您不需要在join中写出整个sub-select语句。您需要为表名使用别名,然后只需选择以别名为前缀的所需列。它将是这样的:
SELECT INV.CODE, INV.SALES, INV.QTY_AVAILABLE, INV.LOCATION, HIS.ITEMCODE, HIS.SUM(QUANTITY) AS SALES
FROM INVENTORY AS INV JOIN INVOICE_HISTORY AS HIS ON INV.CODE = HIS.ITEMCODE
关键是,您给库存表一个INV别名,给发票历史记录表一个HIS别名,然后在同一select语句中引用这两个别名
希望有帮助 试试这个
SELECT i.CODE, SUM(QTY_SOLD) SALES, i.QTY_AVAILABLE, i.LOCATION
FROM INVENTORY i
JOIN INVOICE_HISTORY ih ON i.CODE = ih.ITEMCODE
GROUP BY i.CODE, i.QTY_AVAILABLE, i.LOCATION
试试这个
SELECT i.CODE, SUM(QTY_SOLD) SALES, i.QTY_AVAILABLE, i.LOCATION
FROM INVENTORY i
JOIN INVOICE_HISTORY ih ON i.CODE = ih.ITEMCODE
GROUP BY i.CODE, i.QTY_AVAILABLE, i.LOCATION