这些是我最初检索到的行:
112 Cem Ceminay
210 Ali Salih
132 Gül Sen
现在我想克隆每一行以复制为 3 行。所以新的结果:
112 Cem Ceminay
112 Cem Ceminay
112 Cem Ceminay
210 Ali Salih
210 Ali Salih
210 Ali Salih
132 Gül Sen
132 Gül Sen
132 Gül Sen
什么样的 select 语句可以帮助我?
示例选择语句:
SELECT id,name,surname FROM people;
谢谢可爱的人们...
PS:我的查询:
SELECT
Faturalar.faturaNo
,Klinikler.SAPSirketKodu [COMPANY CODE]
,Klinikler.SAPBussinessArea [BUSINESS AREA]
,BasilmisFaturalar.basilmisFatura_id [REFERENCE]
,BasilmisFaturalar.duzenlemeTarihi [DOCUMENT DATE]
,BasilmisFaturalar.duzenlemeTarihi [BASELINE DATE]
,Kurumlar.sapKodu [ACCOUNT]
,Kurumlar.kurumAdi + ' adına '+Faturalar.faturaNo+' nolu fatura' [TEXT]
,BasilmisFaturalar.kdvDahilToplamTutar [AMOUNT]
,BasilmisFaturalar.kdvHaricToplamTutar
,(BasilmisFaturalar.kdvDahilToplamTutar-BasilmisFaturalar.kdvHaricToplamTutar) AS kdvTutari
,CASE
WHEN BasilmisFaturalar.kdvOrani = 0 THEN 'A0'
WHEN BasilmisFaturalar.kdvOrani = 8 THEN '2H'
WHEN BasilmisFaturalar.kdvOrani = 18 THEN '3H'
END [TAX CODE]
,Klinikler.profitCenter [COST CENTER/PROFIT CENTER]
FROM Faturalar
-- Fatura yazdırılmış olmalı
INNER JOIN BasilmisFaturalar ON BasilmisFaturalar.basilmisFatura_id = Faturalar.refBasilmisFatura_id
-- Yazdırılmış fatura iptal edilmemiş olmalı
INNER JOIN BasiliFaturaIptalTalepleri ON BasiliFaturaIptalTalepleri.refBasilmisFatura_id <> BasilmisFaturalar.basilmisFatura_id
-- Fatura Kurum Detaylarından KURUM bilgilerine
INNER JOIN KurumFaturaDetaylari ON KurumFaturaDetaylari.kurumFaturaDetay_id = BasilmisFaturalar.refKurumFaturaDetay_id
-- Faturanın kesildiği kurum
INNER JOIN Kurumlar ON Kurumlar.kurum_id = dbo.KurumFaturaDetaylari.refKurum_id
-- Seanslar üzerinden Klinik bilgilerine böylece SAPcc, SAPba, ProfitCenter a ulaşıyoruz
INNER JOIN Seanslar ON Seanslar.refFatura_id = Faturalar.fatura_id
INNER JOIN dbo.Klinikler ON dbo.Klinikler.klinik_id = Seanslar.refKlinik_id
-- Belirli bir düzenleme tarihi aralığında olmalı
WHERE BasilmisFaturalar.duzenlemeTarihi BETWEEN DATEADD(m,-1,GETDATE()) AND GETDATE()
GROUP BY Faturalar.faturaNo,BasilmisFaturalar.basilmisFatura_id,kdvDahilToplamTutar
,kdvHaricToplamTutar
,BasilmisFaturalar.kdvOrani
,BasilmisFaturalar.duzenlemeTarihi
,Kurumlar.sapKodu
,Klinikler.SAPBussinessArea
,Klinikler.SAPSirketKodu
,Klinikler.profitCenter
,Kurumlar.kurumAdi
最佳答案
帮忙解释一下:Cartesian product/cross join背景
SELECT
people.id, people.name, people.surname
FROM
people
CROSS JOIN
(SELECT 1 AS foo UNION ALL SELECT 2 UNION ALL SELECT 3) bar;
在别处评论了 7 个表格和 42 行之后
SELECT
Singles.*
FROM
(
SELECT
Faturalar.faturaNo
,Klinikler.SAPSirketKodu [COMPANY CODE]
,Klinikler.SAPBussinessArea [BUSINESS AREA]
,BasilmisFaturalar.basilmisFatura_id [REFERENCE]
,BasilmisFaturalar.duzenlemeTarihi [DOCUMENT DATE]
,BasilmisFaturalar.duzenlemeTarihi [BASELINE DATE]
,Kurumlar.sapKodu [ACCOUNT]
,Kurumlar.kurumAdi + ' adına '+Faturalar.faturaNo+' nolu fatura' [TEXT]
,BasilmisFaturalar.kdvDahilToplamTutar [AMOUNT]
,BasilmisFaturalar.kdvHaricToplamTutar
,(BasilmisFaturalar.kdvDahilToplamTutar-BasilmisFaturalar.kdvHaricToplamTutar) AS kdvTutari
,CASE
WHEN BasilmisFaturalar.kdvOrani = 0 THEN 'A0'
WHEN BasilmisFaturalar.kdvOrani = 8 THEN '2H'
WHEN BasilmisFaturalar.kdvOrani = 18 THEN '3H'
END [TAX CODE]
,Klinikler.profitCenter [COST CENTER/PROFIT CENTER]
FROM Faturalar
-- Fatura yazdırılmış olmalı
INNER JOIN BasilmisFaturalar ON BasilmisFaturalar.basilmisFatura_id = Faturalar.refBasilmisFatura_id
-- Yazdırılmış fatura iptal edilmemiş olmalı
INNER JOIN BasiliFaturaIptalTalepleri ON BasiliFaturaIptalTalepleri.refBasilmisFatura_id <> BasilmisFaturalar.basilmisFatura_id
-- Fatura Kurum Detaylarından KURUM bilgilerine
INNER JOIN KurumFaturaDetaylari ON KurumFaturaDetaylari.kurumFaturaDetay_id = BasilmisFaturalar.refKurumFaturaDetay_id
-- Faturanın kesildiği kurum
INNER JOIN Kurumlar ON Kurumlar.kurum_id = dbo.KurumFaturaDetaylari.refKurum_id
-- Seanslar üzerinden Klinik bilgilerine böylece SAPcc, SAPba, ProfitCenter a ulaşıyoruz
INNER JOIN Seanslar ON Seanslar.refFatura_id = Faturalar.fatura_id
INNER JOIN dbo.Klinikler ON dbo.Klinikler.klinik_id = Seanslar.refKlinik_id
-- Belirli bir düzenleme tarihi aralığında olmalı
WHERE BasilmisFaturalar.duzenlemeTarihi BETWEEN DATEADD(m,-1,GETDATE()) AND GETDATE()
GROUP BY Faturalar.faturaNo,BasilmisFaturalar.basilmisFatura_id,kdvDahilToplamTutar
,kdvHaricToplamTutar
,BasilmisFaturalar.kdvOrani
,BasilmisFaturalar.duzenlemeTarihi
,Kurumlar.sapKodu
,Klinikler.SAPBussinessArea
,Klinikler.SAPSirketKodu
,Klinikler.profitCenter
,Kurumlar.kurumAdi
) Singles
CROSS JOIN
(SELECT 1 AS foo UNION ALL SELECT 2 UNION ALL SELECT 3) Multiplier;
关于sql - 如何在 SQL Server 中多次检索行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1209395/