这些是我最初检索的行:
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
答案 0 :(得分:13)
帮助解释: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;
答案 1 :(得分:7)
怎么样:
SELECT id,name,surname FROM people
UNION ALL
SELECT id,name,surname FROM people
UNION ALL
SELECT id,name,surname FROM people
并可能添加
ORDER BY id, name
如果您想订购它。
马克