Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.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
Mysql 向列中添加一个值,该值指示记录来自哪个表+;sql_Mysql_Sql_Sql Server_Rows_Calculated Columns - Fatal编程技术网

Mysql 向列中添加一个值,该值指示记录来自哪个表+;sql

Mysql 向列中添加一个值,该值指示记录来自哪个表+;sql,mysql,sql,sql-server,rows,calculated-columns,Mysql,Sql,Sql Server,Rows,Calculated Columns,我有三个表(DocIncome、DocOutgoing和Financial),每个表的记录都有一个特定的ID和发生日期 我不是这方面的专家,但我写了一个查询,将我需要的所有信息都包含在一个输出中 SELECT [DepositNo],[ID], [Submitdate] FROM [Doc_Income] WHERE (DepositNo = 7081) UNION SELECT [DepositN

我有三个表(DocIncome、DocOutgoing和Financial),每个表的记录都有一个特定的ID和发生日期

我不是这方面的专家,但我写了一个查询,将我需要的所有信息都包含在一个输出中

   SELECT        [DepositNo],[ID], [Submitdate]
   FROM            [Doc_Income]
   WHERE        (DepositNo = 7081)

   UNION

   SELECT        [DepositNo],[ID], [TransferDate]
   FROM            [Doc_Outgoing]
   WHERE        (DepositNo = 7081)

   UNION

   SELECT            [Tansactions_Details].[DepositNo], [Transactions_Deposits].[ID], [Transactions_Deposits].[TransDate]
   FROM        [Tansactions_Details], [Transactions_Deposits]
   WHERE       [DepositNo]=7081 AND ([Tansactions_Details].[Ref_TransactionID] = [Transactions_Deposits].[ID])

   ORDER BY Submitdate
假设这是输出:

DepositNo|    ID    |  Date
  7081   |   7081   |  2006-10-28 00:00:00.000
  7081   |   21121  |  2006-10-28 00:00:00.000
  7081   |   21122  |  2006-11-21 00:00:00.000
  7081   |   21880  |  2008-03-16 16:41:27.000
  7081   |   23674  |  2008-10-14 11:13:58.000
但是,我如何表明记录1来自收入表?因为我需要代码中的信息


谢谢。

您可以在输出中添加自己的列,方法是提供一个文本字符串并按如下方式命名该列:

SELECT Col1, Col2, 'SomeText' AS MyColumn
FROM MyTable
SELECT        [DepositNo],[ID], [Submitdate], 'DocIncome' AS TableName
FROM            [Doc_Income]
WHERE        (DepositNo = 7081)

UNION

SELECT        [DepositNo],[ID], [TransferDate], 'DocOutgoing' AS TableName
FROM            [Doc_Outgoing]
WHERE        (DepositNo = 7081)

UNION

SELECT            [Tansactions_Details].[DepositNo], [Transactions_Deposits].[ID], [Transactions_Deposits].[TransDate], 'Doc_Income' AS TableName
FROM        [Tansactions_Details], [Financial]
WHERE       [DepositNo]=7081 AND ([Tansactions_Details].[Ref_TransactionID] = [Transactions_Deposits].[ID])

ORDER BY Submitdate
这使您的查询如下所示:

SELECT Col1, Col2, 'SomeText' AS MyColumn
FROM MyTable
SELECT        [DepositNo],[ID], [Submitdate], 'DocIncome' AS TableName
FROM            [Doc_Income]
WHERE        (DepositNo = 7081)

UNION

SELECT        [DepositNo],[ID], [TransferDate], 'DocOutgoing' AS TableName
FROM            [Doc_Outgoing]
WHERE        (DepositNo = 7081)

UNION

SELECT            [Tansactions_Details].[DepositNo], [Transactions_Deposits].[ID], [Transactions_Deposits].[TransDate], 'Doc_Income' AS TableName
FROM        [Tansactions_Details], [Financial]
WHERE       [DepositNo]=7081 AND ([Tansactions_Details].[Ref_TransactionID] = [Transactions_Deposits].[ID])

ORDER BY Submitdate

添加一个带有字符串的列,以在联合查询中标识表名,例如

SELECT        [DepositNo],[ID], [Submitdate], 'INCOME_TABLE' as TableName
   FROM            [Doc_Income]
   WHERE        (DepositNo = 7081)