English 中文(简体)
SQL 查询无效 SQL 查询
原标题:SQL Query not working

我有这四张桌子:

SELECT [B_Key]
  ,[B_FiscalYear]
  ,[B_OrgCode]
  ,[B_SubObject]
  ,[B_Explanation]
  ,[B_CIPrefNo]
  ,[B_OrgBudgetAmt]
  ,[B_BudgetAmt]
  ,[B_Initials]
FROM [NAOLI].[dbo].[BudgetTbl]

SELECT [F_Fykey]
  ,[F_FiscalYear]
  ,[F_Year]
FROM [NAOLI].[dbo].[codeFiscalYearTbl]

SELECT [O_OrgKey]
  ,[O_OrgCode]
  ,[O_OrgDesc]
  ,[O_Divisions]
FROM [NAOLI].[dbo].[codeOrgCodeTbl]

SELECT [S_SubKey]
  ,[S_SubObject]
  ,[S_SubDescrip]
FROM [NAOLI].[dbo].[codeSubObjectTbl]

我要综合这些表格中不同部分的信息,以便编制以下的表格:

   [B_FiscalYear]
  ,[O_OrgCode]
  ,[O_OrgDesc]
  ,[S_SubObject]
  ,[S_SubDescrip]
  ,[B_BudgetAmt]
  ,[B_Initials]
  ,[B_CIPrefNo]
  ,[B_OrgBudgetAmt]

我尝试了下面的查询, 但是它返回了 20 750 个记录中的 0 个。 如何完成?

SELECT [B_FiscalYear]
  ,[B_OrgCode]
  ,[O_OrgDesc]
  ,[B_SubObject]
  ,[S_SubDescrip]
  ,[B_BudgetAmt]
  ,[B_Initials]
  ,[B_CIPrefNo]
  ,[B_OrgBudgetAmt]

INTO dbo.BudgetsTbl
  FROM [BudgetTbl] BT, [codeFiscalYearTbl] FY, [codeOrgCodeTbl] OC, [codeSubObjectTbl] SO
WHERE BT.B_FiscalYear = FY.F_Year and BT.B_OrgCode = OC.O_OrgCode and BT.B_SubObject = SO.S_SubObject
最佳回答

正确的合并语法是 :

SELECT [B_FiscalYear], [B_OrgCode], [O_OrgDesc], [B_SubObject], [S_SubDescrip],
       [B_BudgetAmt], [B_Initials], [B_CIPrefNo], [B_OrgBudgetAmt]
INTO dbo.BudgetsTbl
FROM BudgetTbl BT join
     codeFiscalYearTbl FY
     on BT.B_FiscalYear = FY.F_Year  join
     codeOrgCodeTbl OC
     on BT.B_OrgCode = OC.O_OrgCode join
     codeSubObjectTbl SO
     on BT.B_SubObject = SO.S_SubObject

假设您查找的表格中有一个或多个为空。 如果您想要全部行, 请在上述查询中将“ join” 替换为“ left exter join ” 。

问题回答

联合起来就应该这样:

SELECT [B_FiscalYear]
  ,[B_OrgCode]
  ,[O_OrgDesc]
  ,[B_SubObject]
  ,[S_SubDescrip]
  ,[B_BudgetAmt]
  ,[B_Initials]
  ,[B_CIPrefNo]
  ,[B_OrgBudgetAmt]
FROM BudgetTbl BT
JOIN codeFiscalYearTbl FY ON BT.B_FiscalYear = FY.F_Year
JOIN codeOrgCodeTbl OC ON BT.B_OrgCode = OC.O_OrgCode
JOIN codeSubObjectTbl SO ON BT.B_SubObject = SO.S_SubObject

You can look at http://sqlfiddle.com/#!3/8ff6b/7 for more info. Also you can add left joins if needed.





相关问题
SQL SubQuery getting particular column

I noticed that there were some threads with similar questions, and I did look through them but did not really get a convincing answer. Here s my question: The subquery below returns a Table with 3 ...

难以执行 REGEXP_SUBSTR

I m 查询Oracle 10g。 我有两张表格(样本数据见下文)。 i m 试图提取一些领域

SQL Query Shortcuts

What are some cool SQL shorthands that you know of? For example, something I learned today is you can specify to group by an index: SELECT col1, col2 FROM table GROUP BY 2 This will group by col2

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

OracleParameter and DBNull.Value

we have a table in an Oracle Database which contains a column with the type Char(3 Byte). Now we use a parameterized sql to select some rows with a DBNull.Value and it doesn t work: OracleCommand ...

Running numbers in SQL

I have a SQL-statement like this: SELECT name FROM users WHERE deleted = 0; How can i create a result set with a running number in the first row? So the result would look like this: 1 Name_1 2 ...

How to get SQL queries for each user where env is production

I’m developing an application dedicated to generate statistical reports, I would like that user after saving their stat report they save sql queries too. To do that I wrote the following module: ...

热门标签