我有这样的查询:
WITH InfoNeg AS
(
SELECT DISTINCT
n.idcliente,
CASE
WHEN DATEDIFF(MONTH, MAX(n.fechanegociacion), GETDATE()) <= 2
THEN 'Negociado 6 meses'
ELSE NULL
END AS TipoNeg
FROM
SAB2NewExports.dbo.negociaciones AS n
WHERE
Aprobacion = 'Si'
AND cerrado = 'Si'
GROUP BY
n.idcliente
), Multi AS
(
SELECT DISTINCT
idcliente, COUNT(distinct idportafolio) AS NumPorts
FROM
orangerefi.wfm.wf_master_HIST
WHERE
YEAR(Fecha_BKP) = 2021
AND MONTH(Fecha_BKP) = 08
GROUP BY
idcliente
)
SELECT DISTINCT
m.IdCliente, c.Nombre1
FROM
orangerefi.wfm.wf_master_HIST as m
LEFT JOIN
InfoNeg ON m.idcliente = InfoNeg.idcliente
LEFT JOIN
Multi ON m.IdCliente = Multi.idcliente
LEFT JOIN
SAB2NewExports.dbo.Clientes AS c ON m.IdCliente = c.IdCliente
WHERE
CanalTrabajo = 'Callcenter - Outbound' -- Cambiar aca
AND YEAR (Fecha_BKP) = 2021
AND MONTH(Fecha_BKP) = 08
AND GrupoTrabajo IN ('Alto') -- Cambiar aca
AND Bucket IN (1, 2) -- Cambiar aca
AND Multi.NumPorts > 1
AND Infoneg.TipoNeg IS NULL
当我运行它时,我得到了3万行,我在执行查询时得到的列是:ClientID, name。当我运行它时,我想把它保存在一个Excel文件中,我不知道这是否可能。
另一个问题,是否可以创建一个存储文本的变量?我用的是CONCAT()
,但文字太长有点麻烦,我不知道是否有其他选择。
如果你能帮助我,我会很感激的。
声明一个变量
DECLARE @string VARCHAR(MAX)
SET @string = concat()
然后插入要连接的内容
下面是carusyte给出的答案导出SQL查询数据到Excel我不知道这是不是你想要的,但是你可以像这样将结果导出到Excel中:
在结果窗格中,单击左上角单元格以突出显示所有记录,然后右键单击左上角单元格并单击"Save results as"。导出选项之一是CSV。
你也可以试试这个:
INSERT INTO OPENROWSET
('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:Test.xls;','SELECT productid, price FROM dbo.product')
Lastly, you can look into using SSIS (replaced DTS) for data exports. Here is a link to a tutorial:
http://www.accelebrate.com/sql_training/ssis_2008_tutorial.htm
==更新#1 ==
要将结果保存为具有列标题的CSV文件,可以遵循以下步骤:
进入工具->选项查询结果->SQL Server->结果到Grid选中"在复制或保存结果时包括列标题"单击OK。请注意,新的设置不会影响任何现有的Query选项卡-您需要打开新的选项卡和/或重新启动SSMS。