我有三张桌子需要放在一起 第一个表是我的主要交易表,我需要获取不同的交易ID号和公司ID。它有所有重要的钥匙。交易ID不是唯一的 第二个表的项目信息链接到不唯一的交易ID号,我需要提取项目 第三个表的公司信息有公司ID。
现在我已经通过id by group by first first卖出了其中的一些。第二个通过子查询创建唯一的ID并连接到第一个。 我遇到的问题是公司的第三个问题。我似乎无法创建一个在上述组合中工作的查询。有什么想法吗?
这里建议的是我的代码。它的工作原理,但这是因为我使用的公司数不能给出正确的数字。我怎么能让公司号码正确出来?
SELECT
dep.ItemIDAPK,
dep.TotalOne,
dep.company,
company.vendname,
appd.ItemIDAPK,
appd.ItemName
FROM (
SELECT
csi.ItemIDAPK,
sum(f.TotalOne) as TotalOne,
count(f.DimCurrentcompanyID) company
FROM dbo.ReportOne F with (nolock)
INNER JOIN dbo.DSaleItem csi with (nolock)
on f.DSaleItemID = csi.DSaleItemID
INNER JOIN dbo.DimCurrentcompany cv
ON f.DimCurrentcompanyID = cv.DimCurrentcompanyID
INNER JOIN dbo.DimDate dat
on f.DimDateID = dat.DimDateID
where (
dat.date >='2013-01-29 00:00:00.000'
and dat.date <= '2013-01-30 00:00:00.000'
)
GROUP BY csi.ItemIDAPK
) as dep
INNER JOIN (
SELECT
vend.DimCurrentcompanyID,
vend.Name vendname
FROM dbo.DimCurrentcompany vend
) As company
on dep.company = company.DimCurrentcompanyID
INNER JOIN (
SELECT
c2.ItemIDAPK,
ItemName
FROM (
SELECT DISTINCT ItemIDAPK
FROM dbo.dimitem AS C
) AS c1
JOIN dbo.dimitem AS c2 ON c1.ItemIDAPK = c2.ItemIDAPK
) as appd
ON dep.ItemIDAPK = appd.ItemIDAPK
有关详细信息,我的输出是以下示例,我知道代码执行且companyid不正确,因为我只是在其中放入了(count)以使上述代码执行:
Current Results:
Item Number TLS CompanyID Company Name Item Number Item Name
111111 300 303 Johnson Corp 29323 Soap
Proposed Results:
Item Number TLS CompanyID Company Name Item Number Item Name
111111 300 29 Johnson Corp 29323 Soap