Çok+Çoklu SQL

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Çok+Çoklu SQL

Mesaj gönderen m_ekici »

s.a.

İki tablom var. 1. Tabloda ürün ve miktarı ('XXXX',10) ('YYYY,5) yazıyor. 2. tabloyu 1.tablodaki ürünlerin adlarını miktarı kadar eklemem gerekiyo. bunu tek query ile yapabilirmiyiz? yoksa eski usul döngü içinde mi yaparız?

Kod: Tümünü seç

1. tabloda ('XXXX',10) ('YYYY,5) bilgileri var
2. tablolo şu şekilde olacak
XXXX
XXXX
XXXX
... (10 tane XXXX kayıt)
YYYYY
YYYYY
YYYYY
YYYYY
YYYYY
orhancc
Üye
Mesajlar: 585
Kayıt: 24 Ağu 2010 02:14
Konum: İstanbul / Kadıköy
İletişim:

Re: Çok+Çoklu SQL

Mesaj gönderen orhancc »

niye öyle birşey yapmak istiyorsun ?
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: Çok+Çoklu SQL

Mesaj gönderen aslangeri »

s.a.
istersniz vt de bir sp yazarak yapabilirsiniz. ancak her halükarda bir döngü kurulacak gibi görünüyor.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Çok+Çoklu SQL

Mesaj gönderen m_ekici »

Etiket yazdırıyorum. hangi etiketten kaç adet olacağı yazılacak.
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Re: Çok+Çoklu SQL

Mesaj gönderen Hakan Can »

Şöyle bir query ile istediğin sonuca ulaşabilirsin:

Kod: Tümünü seç

SELECT
  T1.URUN
FROM URUN_MIKTAR T1
  INNER JOIN
    (
     SELECT
       T1.SAYI * 1 + T2.SAYI * 10 + T3.SAYI * 100 + T4.SAYI * 1000 + 1 AS SAYI
     FROM (SELECT 0 AS SAYI UNION ALL SELECT 1 AS SAYI UNION ALL SELECT 2 AS SAYI UNION ALL SELECT 3 AS SAYI UNION ALL SELECT 4 AS SAYI UNION ALL SELECT 5 AS SAYI UNION ALL SELECT 6 AS SAYI UNION ALL SELECT 7 AS SAYI UNION ALL SELECT 8 AS SAYI UNION ALL SELECT 9 AS SAYI) T1
       LEFT JOIN (SELECT 0 AS SAYI UNION ALL SELECT 1 AS SAYI UNION ALL SELECT 2 AS SAYI UNION ALL SELECT 3 AS SAYI UNION ALL SELECT 4 AS SAYI UNION ALL SELECT 5 AS SAYI UNION ALL SELECT 6 AS SAYI UNION ALL SELECT 7 AS SAYI UNION ALL SELECT 8 AS SAYI UNION ALL SELECT 9 AS SAYI) T2 ON 1 = 1
       LEFT JOIN (SELECT 0 AS SAYI UNION ALL SELECT 1 AS SAYI UNION ALL SELECT 2 AS SAYI UNION ALL SELECT 3 AS SAYI UNION ALL SELECT 4 AS SAYI UNION ALL SELECT 5 AS SAYI UNION ALL SELECT 6 AS SAYI UNION ALL SELECT 7 AS SAYI UNION ALL SELECT 8 AS SAYI UNION ALL SELECT 9 AS SAYI) T3 ON 1 = 1
       LEFT JOIN (SELECT 0 AS SAYI UNION ALL SELECT 1 AS SAYI UNION ALL SELECT 2 AS SAYI UNION ALL SELECT 3 AS SAYI UNION ALL SELECT 4 AS SAYI UNION ALL SELECT 5 AS SAYI UNION ALL SELECT 6 AS SAYI UNION ALL SELECT 7 AS SAYI UNION ALL SELECT 8 AS SAYI UNION ALL SELECT 9 AS SAYI) T4 ON 1 = 1
     ) T2 ON T2.SAYI <= T1.MIKTAR
ORDER BY 1
Kolay gelsin.
Cevapla