C# 将两个表中的数据合并到一个表中
我有三个DataGridView,如图所示。嗯,我确实有,但不得不把它们移走 Income Received datagridview的SQL选择如下:C# 将两个表中的数据合并到一个表中,c#,sql-server,datagridview,C#,Sql Server,Datagridview,我有三个DataGridView,如图所示。嗯,我确实有,但不得不把它们移走 Income Received datagridview的SQL选择如下: ("Select I_Stock_Code as 'Stock Code', Income_Date, Dividend_Amount as 'Dividend Income', Franked_Income as 'Franking Credit Income', Option_Income as 'Option Income', Divi
("Select I_Stock_Code as 'Stock Code', Income_Date, Dividend_Amount as 'Dividend Income', Franked_Income as 'Franking Credit Income', Option_Income as 'Option Income', Dividend_Amount + Option_Income + Franked_Income as 'Total Income', Notes from Income order by I_Stock_Code", JKPLConnection);
("Select B_Stock_Code as 'Stock Code', Buy_Date, Number_Bought as 'Bought',Price as 'Buy Price', Brokerage as ' Brokerage Cost', Total_Cost as 'Investment Cost', Interest_Rate as 'Opportunity Interest Rate %', Acc_interest as 'Accumulated Interest', (Total_Cost + Acc_Interest)/Number_Bought as 'Breakeven Price'FROM Buy ORDER BY B_Stock_Code", JKPLConnection);
("SELECT B_Stock_Code as 'Stock Code', COUNT (Number_Bought) as Transactions, SUM (Number_Bought) AS Bought, SUM (Total_Cost)/SUM (Number_Bought) AS 'Average Buy Price', SUM (Total_Cost) AS 'Total Investment', SUM (ACC_Interest) AS 'Opportunity Interest Cost', (SUM (Total_Cost) + SUM(ACC_Interest))/SUM (Number_Bought) AS 'Breakeven Price' FROM buy GROUP BY B_Stock_Code", JKPLConnection);
详细投资datagridview的SQL选择如下:
("Select I_Stock_Code as 'Stock Code', Income_Date, Dividend_Amount as 'Dividend Income', Franked_Income as 'Franking Credit Income', Option_Income as 'Option Income', Dividend_Amount + Option_Income + Franked_Income as 'Total Income', Notes from Income order by I_Stock_Code", JKPLConnection);
("Select B_Stock_Code as 'Stock Code', Buy_Date, Number_Bought as 'Bought',Price as 'Buy Price', Brokerage as ' Brokerage Cost', Total_Cost as 'Investment Cost', Interest_Rate as 'Opportunity Interest Rate %', Acc_interest as 'Accumulated Interest', (Total_Cost + Acc_Interest)/Number_Bought as 'Breakeven Price'FROM Buy ORDER BY B_Stock_Code", JKPLConnection);
("SELECT B_Stock_Code as 'Stock Code', COUNT (Number_Bought) as Transactions, SUM (Number_Bought) AS Bought, SUM (Total_Cost)/SUM (Number_Bought) AS 'Average Buy Price', SUM (Total_Cost) AS 'Total Investment', SUM (ACC_Interest) AS 'Opportunity Interest Cost', (SUM (Total_Cost) + SUM(ACC_Interest))/SUM (Number_Bought) AS 'Breakeven Price' FROM buy GROUP BY B_Stock_Code", JKPLConnection);
合并投资datagridview的SQL选择如下:
("Select I_Stock_Code as 'Stock Code', Income_Date, Dividend_Amount as 'Dividend Income', Franked_Income as 'Franking Credit Income', Option_Income as 'Option Income', Dividend_Amount + Option_Income + Franked_Income as 'Total Income', Notes from Income order by I_Stock_Code", JKPLConnection);
("Select B_Stock_Code as 'Stock Code', Buy_Date, Number_Bought as 'Bought',Price as 'Buy Price', Brokerage as ' Brokerage Cost', Total_Cost as 'Investment Cost', Interest_Rate as 'Opportunity Interest Rate %', Acc_interest as 'Accumulated Interest', (Total_Cost + Acc_Interest)/Number_Bought as 'Breakeven Price'FROM Buy ORDER BY B_Stock_Code", JKPLConnection);
("SELECT B_Stock_Code as 'Stock Code', COUNT (Number_Bought) as Transactions, SUM (Number_Bought) AS Bought, SUM (Total_Cost)/SUM (Number_Bought) AS 'Average Buy Price', SUM (Total_Cost) AS 'Total Investment', SUM (ACC_Interest) AS 'Opportunity Interest Cost', (SUM (Total_Cost) + SUM(ACC_Interest))/SUM (Number_Bought) AS 'Breakeven Price' FROM buy GROUP BY B_Stock_Code", JKPLConnection);
到目前为止,我对此感到高兴。我的问题是,我想在ConsolidatedInvestmentDataGridView中加入一列,显示每项投资产生的收入
为了测试我的SQL命令,我使用了一个单独的程序来测试这些语句,然后尝试将它们集成到生成三个DataGridView的程序中。SQL Tester图像显示了我的最大努力。从中可以看出,为必和必拓购买的数字是一次又一次重复的;显示收入的第1栏提供了完全错误的数字![SQL Tester][4]
我完全不知道有什么解决办法。这是生成视图的代码
SELECT
Buy.B_Stock_Code AS StockCode,
SUM(buy.Number_Bought) AS NumberBought,
SUM(Buy.Total_Cost) AS TotalCost,
SUM(Buy.Acc_Interest + Buy.Total_Cost) AS TotalInvestment,
SUM(Income.Option_Income + Income.Franked_Income + Income.Option_Income)
FROM
Buy
FULL OUTER JOIN
Income ON Buy.B_Stock_Code = Income.I_Stock_Code
GROUP BY
Buy.B_Stock_Code, Income.Incomeid
ORDER BY
B_Stock_Code
我正在Windows桌面上使用C#Microsoft Visual Studio Express 2013。我希望这不是太多的信息,但更重要的是,它清楚地表达了我的问题。我不得不删除这些图片,因为我不能上传它们。如果有人能解释这一点,并且上面的信息还不够,我很乐意通过电子邮件发送这些图像。您可以使用编辑器中的“代码”按钮
{}
来格式化代码块,如sql查询。欢迎使用stackoverflow。请阅读。提示:使用适当的代码格式使您的问题可读。您能否在您的问题中也提供您预期的结果?您能否将您的图像上传到fliker上并提及您问题中的链接?非常感谢您的反馈。此后,我发现该错误是由于在SQL联接查询中使用与行求和相关的“GROUPBY”引起的。因为我希望现在能够更好地解释这一点,并希望使用正确的格式,所以我添加了一篇新文章。