sql-server-2005 - SQL Server 2005 查询

标签 sql-server-2005 tsql

我今天实在想不通 - 所以非常感谢你的帮助。

表结构

Create Table #trans
(
TransactionId int,
AccountNumber varchar(10),
TransactionAmount money,
TransactionDate DateTime
)

Create Table #payments
(
PaymentId int,
AccountNumber varchar(10),
PaymentAmount money,
PaymentDate
)

示例数据

Insert Into #trans
Values ( 500500 ,'10000001', 10000.00, '2008-10-02')
GO
Insert Into #trans
Values ( 500501 ,'10000001', 10000.00, '2008-10-02')
GO
Insert Into #trans
Values ( 500502 ,'10000001', 10000.00, '2008-10-02')
GO

Insert Into #payments
Values ( 0001,'10000001', 10000.00, '2008-10-02')
GO
Insert Into #payments
Values ( 0002,'10000001', 10000.00, '2008-10-02')
GO
Insert Into #payments
Values ( 0003,'10000001', 10000.00, '2008-10-02')
GO

预期结果

我需要能够将交易与付款相匹配。所以基本上我会得到:

TransactionId     PaymentId 

500500           0001 
500501           0002 
500502           0003

在账号、付款日期和金额上匹配的交易。

这看起来很简单,但我似乎无法解决。

更新

为了澄清我的情况,我根据上表列出了历史交易。我有包含付款的文件,也是历史记录。我需要将交易与文件中的付款相匹配。

为什么?

  • 查找文件中不存在的任何交易。
  • 在文件中查找没有相应交易的任何付款
  • 创建一个包含 TransactionID 和 PaymentID 的“链接”表,以便将来查询此数据的其他任何人都不会遇到同样的问题。

最佳答案

您无法解决的原因是因为没有任何东西将交易与付款相关联。

您需要向其中一个表添加一个外键,以引用另一个表中的相关信息,以使结果具有任何意义。

我会像这样修改表格:

Create Table #payments
(
    PaymentId int,
    AccountNumber varchar(10),
    PaymentAmount money,
    PaymentDate,
    TransactionId int,
    foreign key (TransactionId) references #trans(TransactionId)
)

Create Table #trans
(
    TransactionId int,
    AccountNumber varchar(10),
    TransactionAmount money,
    TransactionDate DateTime
)

然后您可以执行一个简单的查询(如果您想要的不仅仅是 ID,则可以执行一个连接):

select TransactionId, PaymentId from #payments

关于sql-server-2005 - SQL Server 2005 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4078328/

相关文章:

sql-server - 仅限订阅者触发器

sql - 如何编写 SQL Server 登录密码更改脚本?

sql - 服务器重新启动后字符串或二进制数据被截断

mysql - 将 MySql 数据库转换为带有数据的 MS SQL Server 2005?

sql - 返回两个十进制值之间的所有值

sql - 使用 SQL 插入基于 QUERY 的记录数

SQL Server 添加新列后列名无效

asp.net - 当用户离开网站(ASPX)时最后调用数据库?

sql-server - 调试严重的 LINQ-to-SQL 超时

c# - Sql-server 2005 中的内部连接问题