需要在SQL查询中添加电话号码以添加到某人的姓名和地址

时间:2016-11-19 17:28:37

标签: sql sql-server ssms

好的,这就是我的情况。

我正在使用Microsoft SQL Server Management Studio我目前有一个查询可以提取个人的许可证号码,地址,名字,姓氏和ID。我需要添加以完成此操作是添加电话号码。我刚刚进入这个环境,我不完全确定哪些表包含哪些数据。有近5000张桌子,我根本没时间通过它们。 如何查看两个表之间是否存在任何关系? 我尝试where f.phn_int_id = a.psn_int_id,但这不起作用,因为表1中的人员ID与表2中的电话ID不匹配。

我还应该提一下,包含电话号码的表格仅包含phn_int_idphn_ara_cdphn_exc_nophn_lcl_no。包含人名的表包含prsn_int_idfst_nmmid_nmlst_nm

我从一个函数中提取一个单独的地址,即person_address_line = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'L'), person_address_csz = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'C')

*请注意,b =我们的人名表。

**请注意,这是我的第一个问题,所以我可能会错过一些重要的信息。

修改 我搜索到的任何地方都无法帮助我解决我的问题。

编辑2 这是查询,表格的名称已更改为第1列,第2列等。

`SELECT a.car_gvr_ext_id, b.lst_nm, b.fst_nm, c.car_gvr_lic_no, e.cod_dtl_ds, concat(f.phn_ara_cd, f.phn_exc_no, f.phn_lcl_no) AS phn_no, person_address_line = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'L'), person_address_csz = dbo.fn_get_ent_pri_adr (b.psn_int_id, 'C')
  FROM column1 a, column2 b, column3 c, column4 d, column5 e, column6 f
  WHERE a.psn_int_id = b.psn_int_id
  AND a.car_gvr_int_id = c.car_gvr_int_id
  AND a.car_gvr_int_id = d.car_gvr_int_id
  AND d.func_int_id = e.cod_dtl_int_id
  AND f.phn_int_id = a.car_gvr_int_id` 

如果我保留这样的代码,我将获得phn_int_id = 1的电话号码,以便将自己绑定到car_gvr_int_id = 1等等。问题是,当我这样做时,我会得到一条线路,来自佛罗里达州的人将拥有本地号码,而拥有本地号码的人将拥有州外号码。

1 个答案:

答案 0 :(得分:0)

有很多方法可以列出表中的列:

1-使用Information Schema Views

示例

Select * FROM INFORMATION_SCHEMA.COLUMNS

2-使用系统表sys.columnssys.Tables以及sys.schemas

示例:

SELECT cols.name as column_name, tbls.name as Table_name,schm.name as schema_name  FROM sys.columns  AS cols INNER JOIN sys.tables  AS tbls
ON cols.object_id = tbls.object_id INNER JOIN sys.schemas as schm ON tbls.schema_id = schm.schema_id
WHERE tbls.type = 'U'

列出列时,更容易处理您的情况