【发布时间】:2016-03-06 15:30:20
【问题描述】:
这是我用于打印的存储过程。我正面临问题,因为由于评论加入,我获得了两倍的记录。我想获得如下所述的输出。我是 DB 的新手。我们将不胜感激。
DECLARE @path AS VARCHAR(100)
SET @path = N'~/BillAttachments/166/'
DECLARE @billID AS INT
SET @billID = 166
SELECT bh.billID,bh.statusID,bh.modifiedOn,bs.statusName
FROM dbo.eInvoice_tbl_billHistory AS bh
--INNER JOIN dbo.eInvoice_tbl_billAttachment AS ba ON bh.billID = ba.billID
--INNER JOIN dbo.eInvoice_tbl_billAttachment AS ba ON ba.billID = bh.billID
INNER JOIN dbo.eInvoice_tbl_billStatus AS bs ON bh.statusID = bs.statusID
WHERE bh.billID=@billID;
当我尝试从所需的表中获取这些列时
ba.attachmentID ,
@path + ba.fileName AS asad ,
ba.attachmentDescription ,
ba.billAttachmentStatus,
输出是:
166 3 2015-11-30 11:44:18.663 Approve
166 3 2015-11-30 11:44:18.663 Approve
166 5 2015-11-30 11:44:42.600 Paid
166 5 2015-11-30 11:44:42.600 Paid
但想要的输出是:
166 3 2015-11-30 11:44:18.663 Approve
166 5 2015-11-30 11:44:42.600 Paid
【问题讨论】:
-
您应该调查数据以找出您得到重复项的原因。虽然您可以通过修改查询来解决问题(例如,使用
select distinct),但您应该确保数据正确且不包含重复项。 -
请再次查看问题,已修改
标签: sql sql-server database stored-procedures inner-join