SQL View hk.

Gönderen Konu: SQL View hk.  (Okunma sayısı 1898 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
SQL View hk.
« : 23.12.2014, 09:35 »
Arkadaşlar merhaba.

Tiger2 kullanıyoruz ve view kullanarak excel'e dinamik rapor alıyoruz. 127 256 ve 320 firmalarından dinamik rapor almaktayım fakat 320 firması bir türlü rapor vermiyor. Bir önceki sene olan 319 firması sorunsuz şekilde rapor verirken 320 rapor vermiyor. Diğer iki firma excel'de firmalar listesinde görünürken 320 firması görünmüyor bile. Tek başına 320 firmasını oluşturdum yine sonuç değişmedi. 320 firmasının tablolarını kontrol ettim bir sorun göremedim. Sorun nerede olabilir yardımcı olur musunuz?


Teşekkürler.

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: SQL View hk.
« Yanıtla #1 : 23.12.2014, 10:46 »
filtrelerinize bakabilirsiniz.

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #2 : 23.12.2014, 10:57 »
Excel tarafındaki filtreleri diyorsanız zaten orda görünmüyor. SQL'de filtre varsa bilmiyorum yardımcı olursanız kontrol ederim.

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: SQL View hk.
« Yanıtla #3 : 23.12.2014, 10:59 »
Kodunuzu paylaşmadan empati yolu ilemi ilerleyelim .

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #4 : 23.12.2014, 11:06 »
Empatiden ziyade nezaket ile ilerlersek sanırım sonuca ulaşabiliriz.

SQL'deki view kodu:

SELECT     '320' AS FİRMA, CASE INV.TRCODE WHEN 8 THEN 'SATIS' WHEN 3 THEN 'SATIS IADE' END AS TUR, INV.DATE_ AS 'FATURA TARIHI', MONTH(INV.DATE_) AS 'FAT AY',
                      INV.FICHENO AS 'FATURA NO', INV.DOCODE AS 'BELGE NO', C.CODE AS 'CARİ KODU', C.DEFINITION_ AS 'CARİ ADI', I.CODE AS 'MALZ KODU', I.NAME AS 'MALZ ADI',
                      STL.PRICE AS 'BİRİM FİYAT', CASE INV.TRCODE WHEN 8 THEN STL.AMOUNT WHEN 3 THEN STL.AMOUNT * - 1 END AS 'MIKTAR',
                      ROUND(CASE INV.TRCODE WHEN 8 THEN STL.PRICE * STL.AMOUNT WHEN 3 THEN STL.PRICE * STL.AMOUNT * - 1 END, 2) AS 'BRUT TOPLAM',
                      ROUND(CASE INV.TRCODE WHEN 8 THEN STL.DISTDISC WHEN 3 THEN STL.DISTDISC * - 1 END, 2) AS 'IND TOPLAM', ROUND(CASE WHEN INV.TRCURR IN (1, 20)
                      THEN (CASE INV.TRCODE WHEN 8 THEN STL.DISTDISC WHEN 3 THEN STL.DISTDISC * - 1 END)
                      / STL.TRRATE ELSE (CASE INV.TRCODE WHEN 8 THEN STL.DISTDISC WHEN 3 THEN STL.DISTDISC * - 1 END) END, 2) AS 'İNDİRİM İD TOPLAM',
                      ROUND(CASE INV.TRCODE WHEN 8 THEN STL.DISTEXP WHEN 3 THEN STL.DISTEXP * - 1 END, 2) AS 'MASRAF TOPLAM', ROUND(CASE WHEN INV.TRCURR IN (1, 20)
                      THEN (CASE INV.TRCODE WHEN 8 THEN STL.DISTEXP WHEN 3 THEN STL.DISTEXP * - 1 END)
                      / STL.TRRATE ELSE (CASE INV.TRCODE WHEN 8 THEN STL.DISTEXP WHEN 3 THEN STL.DISTEXP * - 1 END) END, 2) AS 'MASRAF İD TOPLAM',
                      ROUND((CASE INV.TRCODE WHEN 8 THEN STL.PRICE * STL.AMOUNT WHEN 3 THEN STL.PRICE * STL.AMOUNT * - 1 END)
                      + (CASE INV.TRCODE WHEN 8 THEN STL.DISTEXP WHEN 3 THEN STL.DISTEXP * - 1 END)
                      - (CASE INV.TRCODE WHEN 8 THEN STL.DISTDISC WHEN 3 THEN STL.DISTDISC * - 1 END), 2) AS 'NET TOPLAM', ROUND(CASE WHEN INV.TRCURR IN (1, 20)
                      THEN (((CASE INV.TRCODE WHEN 8 THEN STL.PRICE * STL.AMOUNT WHEN 3 THEN STL.PRICE * STL.AMOUNT * - 1 END)
                      + (CASE INV.TRCODE WHEN 8 THEN STL.DISTEXP WHEN 3 THEN STL.DISTEXP * - 1 END))
                      - (CASE INV.TRCODE WHEN 8 THEN STL.DISTDISC WHEN 3 THEN STL.DISTDISC * - 1 END))
                      / STL.TRRATE ELSE ((CASE INV.TRCODE WHEN 8 THEN STL.PRICE * STL.AMOUNT WHEN 3 THEN STL.PRICE * STL.AMOUNT * - 1 END)
                      + (CASE INV.TRCODE WHEN 8 THEN STL.DISTEXP WHEN 3 THEN STL.DISTEXP * - 1 END))
                      - (CASE INV.TRCODE WHEN 8 THEN STL.DISTDISC WHEN 3 THEN STL.DISTDISC * - 1 END) END, 2) AS 'İD NET TOPLAM', ROUND(CASE WHEN INV.TRCURR IN (1, 20)
                      THEN (CASE INV.TRCODE WHEN 8 THEN STL.PRICE * STL.AMOUNT WHEN 3 THEN STL.PRICE * STL.AMOUNT * - 1 END)
                      / STL.TRRATE ELSE (CASE INV.TRCODE WHEN 8 THEN STL.PRICE * STL.AMOUNT WHEN 3 THEN STL.PRICE * STL.AMOUNT * - 1 END) END, 2) AS 'İD BRÜT TOPLAM',
                      CASE WHEN INV.TRCURR = 0 THEN 'TL' WHEN INV.TRCURR = 160 THEN 'TL' WHEN INV.TRCURR = 1 THEN 'USD' WHEN INV.TRCURR = 20 THEN 'EUR' END AS 'İD TÜRÜ',
                       STL.SOURCEINDEX AS 'AMBAR'
FROM         dbo.LG_320_01_INVOICE AS INV WITH (NOLOCK) INNER JOIN
                      dbo.LG_320_CLCARD AS C WITH (NOLOCK) ON C.LOGICALREF = INV.CLIENTREF INNER JOIN
                      dbo.LG_320_01_STLINE AS STL WITH (NOLOCK) ON STL.INVOICEREF = INV.LOGICALREF INNER JOIN
                      dbo.LG_320_ITEMS AS I WITH (NOLOCK) ON I.LOGICALREF = STL.STOCKREF

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: SQL View hk.
« Yanıtla #5 : 23.12.2014, 13:44 »
kodunuzun Where ile başlayan kısmı nerde?

yoksa, bu halini çalıştırın, bir sürü bölme işlemi var. onlardan birinde sıfıra bölme hatası alıyor olabilirisiniz. haliyle de olduğu kadarıyla excele geliyordur.

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #6 : 23.12.2014, 14:05 »
O satırı kopyalamayı unutmuşum özür dilerim.

Where kısmı da şu şekilde:

WHERE     (INV.CANCELLED = 0) AND (INV.TRCODE IN (3, 8 )) AND (STL.LINETYPE IN (0, 6)) AND (I.CODE LIKE '600%')

Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Ynt: SQL View hk.
« Yanıtla #7 : 23.12.2014, 14:42 »
WHERE     (INV.CANCELLED = 0) AND (INV.TRCODE IN (3, 8 )) AND (STL.LINETYPE IN (0, 6)) -- AND (I.CODE LIKE '600%')     sorgu kapatarak bir alırmısın değer dönüyormu ? belki   I.CODE='600%'  diye bir değer yoktur.

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #8 : 23.12.2014, 16:04 »
Önerinizi denedim ama maalesef değişen bir şey olmadı.

Çevrimdışı kadira

  • Logo Kullanıcısı Pro
  • ***
  • Karma: -1
  • Bilgi Paylaşılırsa güzeldir.
Ynt: SQL View hk.
« Yanıtla #9 : 23.12.2014, 16:28 »
Öyle bir firma olmayabilir, Dönem olmayabilir, Lg_319_02_xxxxx olabilir. Bakmak gerekir.

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #10 : 24.12.2014, 09:19 »
Arkadaşlar öncelikle geç cevap yazdığım için özür dilerim.

Sayın chtztrk:

Tabloların hepsi tek başına çalışıyor SELECT * FROM sorgusunu verdiğimde tüm bilgileri veriyorlar.

Sayın kadira:

Dönem bağımlı çalıştığımız için her yıl bir firma açarak tek dönem çalışıyoruz. 320 firması ve 2014 dönemi mevcut. Yinede öneriniz üzre tekrar kontrol ettim.



Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: SQL View hk.
« Yanıtla #11 : 24.12.2014, 09:26 »
Filtresiz çalıştırıp bakın yani where Den oncesi

Çevrimdışı d0min0o

  • Yeni Kullanıcı
  • *
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #12 : 24.12.2014, 10:04 »
Sayın ByBirol:

Filtreleri tek tek eleyerek denedim sorun var ise hangisinde olduğunu bulabilmek için,fakat tüm filtreler temizlendiğinde dahi view çalışmadı. Hiçbir hata da vermiyor bomboş ekran var sadece. Sanki view çalışıyormuşta tablolar boşmuş gibi.

Tiger tarafında bir yetki vs. olabilir mi? Aklıma başka bir şey gelmiyor artık. Gerçi orada da firmaları karşılaştırdım her şeyleri aynı.

Çevrimdışı MehmetYavuz

  • Logo Uzmanı
  • *****
  • Karma: 3
Ynt: SQL View hk.
« Yanıtla #13 : 24.12.2014, 10:43 »
Tigerin kurulu olduğu server/database ile sorgunun çalıştığı server/database aynı olmayabilir. başkada bir açıklaması yok.

sql ile tiger yetkilendirme farklı.

Çevrimdışı ibrahim02

  • Logo Kullanıcısı Pro
  • ***
  • Karma: 0
Ynt: SQL View hk.
« Yanıtla #14 : 24.12.2014, 11:05 »
Kodunuzda kullanmış olduğunuz STL.DISTDISC alanı ile ilgili hata vermekte bu alan yanlış bilmiyorsam fatura indirim tutarlarının tutulduğu alan fakat logo buraya veriyi sanırım artık şifreli atıyor ki benim databasesde 1e-08 şeklinde kayıtlar yapmış dolayısı ile bu rakamı böldüğümde 0 a bölme hatası verip sonuç dönmüyor dönmeyincede sizin excel dosyasına boş değer geliyor