【问题标题】:Query and list multi columns from many tables sharing same id从共享相同 id 的多个表中查询并列出多列
【发布时间】:2018-01-10 14:27:31
【问题描述】:

我有两张桌子:

  • OctSalesAccount,Consumption,bill 列。
  • NovSalesAccount,Consumption,bill 列。

我想查看以下所有帐户的销售额:出现在任何表格中

【问题讨论】:

  • 请阅读meta.stackoverflow.com/questions/285551/… 和接受的答案
  • Edit您的问题并添加一些sample data 和基于该数据的预期输出。 Formatted textno screen shotsedit 您的问题 - 请不要在 cmets 中提供邮政编码或其他信息。
  • 您使用的是哪个DBMS 产品?后格雷斯?甲骨文? “SQL”只是一种查询语言,而不是特定数据库产品的名称。
  • 提示:FULL JOIN
  • 文本的屏幕截图,而不是文本的复制粘贴!?

标签: sql sql-server sql-server-2016


【解决方案1】:

请参阅此示例了解FULL JOIN 方法:

DECLARE @Oct AS TABLE (id INT, amount DECIMAL(15, 3))
DECLARE @Nov AS TABLE (id INT, amount DECIMAL(15, 3))

INSERT @Oct (id,    amount)
VALUES  ( 1, 35.4)
,       ( 2, 40)

INSERT @Nov (id,    amount)
VALUES  ( 1, 35.4)
,       ( 3, 80) 

SELECT  COALESCE(OCT.id, NOV.id) AS ID
,       SUM(OCT.amount) AS OCT_Amount
,       SUM(NOV.amount) AS NOV_Amount
FROM    @Oct AS OCT
FULL JOIN @Nov AS NOV
        ON  NOV.id = OCT.id
GROUP BY COALESCE(OCT.id, NOV.id) 

结果:

+----+------------+------------+
| ID | OCT_Amount | NOV_Amount |
+----+------------+------------+
|  1 | 35.400     | 35.400     |
|  2 | 40.000     | NULL       |
|  3 | NULL       | 80.000     |
+----+------------+------------+

【讨论】:

  • 感谢您的努力,我对您的查询有疑问。 1-在我的情况下,我不必执行插入部分,因为我拥有的表已经有数据,对吗? 2- 我需要声明我的表并将它们用作表吗?
  • 表变量仅用于说明用数据的方法。在您的情况下,您只需要实际选择查询的结构。
  • 感谢百万 HoneyBadger,它终于为我工作了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-22
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
相关资源
最近更新 更多