mysql - 加入两个mysql表并按日期显示数据

标签 mysql sql select join

我有两个 mysql 表 tblSharesRegistry、tblSharesAccount。我想加入两个表并按日期显示行。但它显示数据不正确。请提供任何帮助。

1. tblSharesRegistry
    ID  EMPNumber   NoOfShares  Amount  Deposit    Date 
    1   1111         100         10000     1    2012-07-20      
    2   1234         50           5000     1    2012-08-12      
    3   1001         10           1000     1    2012-09-25      
    4   1001         10           1000     1    2012-10-25      
    5   1001         10           1000     1    2012-11-25
    6   1001         -5           -500     0    2012-11-28      

2. tblSharesAccount
    ID  EMPNumber   Balance Interest    Rate    Date    
    1   1111      10000   1000           10 2012-11-29
    2   1234       5000    500           10 2012-11-29
    3   1001       2500    250           10 2012-11-29

EMPNumber 的输出应该是:1001

Date         Description    #Shares   Amount   Interest   Total
2012-09-25   Shares bought     10      1000       -        1000
2012-10-25   Shares bought     10      1000       -        2000
2012-11-25   Shares bought     10      1000       -        3000
2012-11-28   Shares sold       -5      -500       -        2500
2012-01-29   Interest          25      2500      250       2750

我当前连接两个表的代码

SELECT tblSharesRegistry.Date, tblSharesRegistry.NoOfShares, tblSharesRegistry.Amount, tblSharesAccount.Interest, tblSharesAccount.Date FROM tblSharesAccount INNER JOIN tblSharesRegistry ON tblSharesAccount.EMPNumber = tblSharesRegistry.EMPNumber WHERE tblSharesRegistry.EMPNumber = '1001' ORDER  BY Date DESC

VB.NET 错误: enter image description here

最佳答案

试试这个:

SELECT * FROM 
(SELECT sr.Date, IF(sr.NoOfShares > 0, 'Shares bought', 'Shares sold') Description, 
         sr.NoOfShares, sr.Amount, '-' Interest, sr.Amount Total 
FROM tblSharesRegistry sr WHERE sr.EMPNumber = '1001' 
UNION 
SELECT sa.Date, 'Interest' Description, (SELECT SUM(sr.NoOfShares) FROM tblSharesRegistry sr  WHERE sa.EMPNumber = se.EMPNumber) NoOfShares, 
         sa.Balance, sa.Interest, (sa.Balance + sa.Interest) Total 
FROM tblSharesAccount sa WHERE sa.EMPNumber = '1001' ) AS A 
ORDER BY A.date

检查此链接以更好地了解 if else 语句 MySQL IF ELSE

关于mysql - 加入两个mysql表并按日期显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13620117/

相关文章:

python - 从我的 sql 检索数据并使用 python 将其发送到 Web 服务

mysql - 选择生日在本周(周一 - 周日)的所有用户

MYSQL 选择每个不同条目的平均值

sql - Postgresql查询generate_series之间的总和

mysql - 查询select语句的结果

php - 无法从数据库获取下拉值

Mysql结果包含e+07,如何从结果中转义e+07

sql - 满足一定条件的Mysql Order结果

mysql - SQL查询多表问题

Windows 上的 python select.select()