ÇözümPark'a hoş geldiniz. Oturum Aç | Üye Ol
 
Ana Sayfa Makale Video Forum Resimler Dosyalar Etkinlik Hizmetlerimiz Biz Kimiz

T-SQL de iki ayrı sorguyu tek sorguda birleştirme

Son Mesajınız 07-03-2018, 10:31 Birol Aydugan tarafından gönderildi. 3 yanıt.
Mesajları Sırala: Önceki Sonraki
  •  06-13-2018, 10:01 532256

    T-SQL de iki ayrı sorguyu tek sorguda birleştirme

    Yapacağım işleri kafamdaki sıra ile takip etmek istiyorum.

    En üstte DEADLINE ı olup ve DEADLINE a 7 gün veya daha az süre olan işler görüntülenecek(eğer işlerin DEADLINE ı aynı ise IMPORTANCE a göre sıralanmasını istedim), onun altında ise kalan işler CURRENTDATE yani getdate() ile çektiğim işin giriliş tarihine göre sıralanacak.

    Bu iki işi iki ayrı sorguda yazdım ama bu soguları nasıl birleştirebilirim bilmiyorum. Aşağıda tablomun basite indirgenmiş halini ve yazdığım sorguları paylaşıyorum.

     

    Yardımlarınız için şimdiden teşekkür ederim.

     

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------

    select deadline, datediff(day, getdate(), deadline) as reday, importance, relation, subjectname, workname, contententry, currentdate from dbo.workshift
    where datediff(day, getdate(), deadline) <= 7
    order by deadline, importance desc

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------

    select deadline, datediff(day, getdate(), deadline) as reday, importance, relation, subjectname, workname, contententry, currentdate from dbo.workshift
    where deadline=null
    order by currentdate
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------

    create table dbo.workshift

    (
    bodyid int not null identity(1,1), /* iş id: işin takip numarası */
    subjectname nvarchar(max), /* konu adı: işin konusunun ne olduğu */
    workname nvarchar(max), /* iş adı: işin hangi hatla ya da hangi durumla ilgili olduğu */
    relation nvarchar(100), /* ilişki: işin kiminle(hangi mühendisle) ilişkili olduğu */
    dateid char(1), /* tarih id: deadline içerenler için 0, içermeyenler için 1 kullanılacak */
    deadline datetime, /* son tarih: işin bitirilmesi gereken son tarih */
    currentdate datetime not null default getdate(), /* anın tarihi: işin girildiği tarih */
    importance char(1), /* önem derecesi: işin ne kadar önemli olduğu 1 den 5 e kadar girilecek. 5 en önemli */
    contententry nvarchar(max) /* içerik: işin ne olduğunun anlatıldığı bölüm */
    )

  •  06-17-2018, 19:04 532379 Cevap 532256

    Cevap : T-SQL de iki ayrı sorguyu tek sorguda birleştirme

    Merhaba

    Union all komutunu deneyebilirsiniiz


    Forum Kuralları: http://www.cozumpark.com/forums/thread/650.aspx

    http://www.yavuzfilizlibay.com
  •  07-03-2018, 0:14 533036 Cevap 532379

    Cevap : T-SQL de iki ayrı sorguyu tek sorguda birleştirme

    Yavuz Bey,

    Yanıtınız için teşekkür ederim lakin "union all" dan önce "order by" kullanımına izin vermiyor T-SQL. Bu kodun temel amacı zaten sıralama yapmak, o yüzden işimi görmüyor malesef "union all"

    Sanırım sürekli geçici tablo oluşturup, bu iki sorgunun sonucunu için basan bir sp yazmam gerekecek. Ne kadar kaçınmaya çalışsam da bazı şeyler kaçınılmaz oluyor sanırım.

  •  07-03-2018, 10:31 533049 Cevap 533036

    Cevap : T-SQL de iki ayrı sorguyu tek sorguda birleştirme

    FOR XML yapısını inceledinizmi.


    Birol AYDUĞAN
    Software&Database Support ENGINEER
    C # / . NET Developer
    Trainer / Instructor / Developer
    LSU / LUU / Logo Çözüm Ortağı
    admin@artibilisim.com
    www.artibilisim.com
    www.logomutabakat.net
RSS haberlerini XML olarak görüntüle