Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从多个表中选择的嵌套子查询_C#_Sql_Data Binding_Datagridview_Oracle10g - Fatal编程技术网

C# 从多个表中选择的嵌套子查询

C# 从多个表中选择的嵌套子查询,c#,sql,data-binding,datagridview,oracle10g,C#,Sql,Data Binding,Datagridview,Oracle10g,我有三张桌子: Years (YearId,Year) Months (MonthID,Month) Date (DateID,YearID,MonthID) Client (CLientID,ClientName) Payment (PayID,ClientID,DateID,Amount) 我想将DataGridView填写为: Client Name, Amount, Year, Month 我用了这句话,但没用: Select * From (select Year From Ye

我有三张桌子:

Years (YearId,Year)
Months (MonthID,Month)
Date (DateID,YearID,MonthID)
Client (CLientID,ClientName)
Payment (PayID,ClientID,DateID,Amount)
我想将DataGridView填写为:

Client Name, Amount, Year, Month 
我用了这句话,但没用:

Select * From (select Year From Years Where YearID = (Select YearId From Date Where dateID = (Select DateID From Payment))),(Select Month From Months Where Monthid = (Select MonthID From Date Where dateID = (Select DateID From Payment))),(Select ClientName From Client Where ClientID = (Select ClientID From Payment),(Select amont From Payment)

听起来您只是想使用
内部联接

SELECT C.ClientName,
    P.Amount,
    Y.Year,
    M.Month
FROM Payment P
    INNER JOIN Client C 
        ON P.ClientID = C.ClientID
    INNER JOIN Date D 
        ON P.DateId = D.DateId
    INNER JOIN Years Y
        ON D.YearId = Y.YearId
    INNER JOIN Months M
        ON D.MonthId = M.MonthId
有关
联接的良好视觉表示,请参见下文:

SELECT C.ClientName,
    P.Amount,
    Y.Year,
    M.Month
FROM Payment P
    INNER JOIN Client C 
        ON P.ClientID = C.ClientID
    INNER JOIN Date D 
        ON P.DateId = D.DateId
    INNER JOIN Years Y
        ON D.YearId = Y.YearId
    INNER JOIN Months M
        ON D.MonthId = M.MonthId

请定义“它不起作用”。。你收到错误信息了吗?此外,你说你有3张桌子,但你说的是5张!顺便问一下,您是否听说过
sqljoin
?我认为这是一个更好的解释:@sgedes它现在的工作非常感谢您Much@MohamedHmmam--np,很高兴我能帮上忙@sgeddes我可以在你的代码之后这样做吗,其中Y.Year=@Yvar和M.Month=@MvarSELECT C.ClientName,P.Amount,Y.Year,M.付款后的月份P内部连接客户端C ON P.ClientID=C.ClientID内部连接日期D ON P.DateId=D.DateId内部连接年份Y ON D.YearId=Y.YearId内部连接月份M ON D.Montid=M.Montid其中Y.Year=@Yvar和M.Month=@Mvar