Tarih, Gün SQL

Gönderen Konu: Tarih, Gün SQL  (Okunma sayısı 5752 defa)

0 Üye ve 4 Ziyaretçi konuyu incelemekte.

Çevrimdışı ARSLAN_Aslan

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 3
  • yazilimyeri.com
Tarih, Gün SQL
« : 19.09.2012, 15:21 »
Bilgi buldum, paylaştım :) ALINTI

SELECT CURRENT_TIMESTAMP                        -- Sonuç :  2009-07-20 10:39:15.097

SELECT DATEADD(day,2,'2009-07-20')              -- Sonuç :  2009-07-22 00:00:00.000

SELECT DATEADD(month,2,'2009-07-20')            -- Sonuç :  2009-09-20 00:00:00.000

SELECT DATEDIFF(day,'2009-07-20','2015-02-09')  -- Sonuç :  2030 (Gün olarak aldık)

SELECT DATENAME(month, '2009-07-20')            -- Sonuç :  July

SELECT DATENAME(weekday, '2009-07-20')          -- Sonuç :  Monday

SELECT DATEPART(month, '2009-07-20')            -- Sonuç :  7

--Şuanki Zaman ve Tarihi verir
SELECT GETDATE()                                -- Sonuç :  2009-07-20 11:52:32.893
 
- Londra - Greenwich Saati
SELECT GETUTCDATE()                             -- Sonuç :  2009-07-20 08:52:44.693

--Girilen string değerin tarih olup olmadığını belirler. 1 ise tarih 0 ise değil.
SELECT ISDATE('2009-07-20')                     -- Sonuç :  1
SELECT ISDATE('2014-18-09')                     -- Sonuç :  0

--girilen Tarihin gün bilgisini verir.
SELECT DAY('2009-07-20')                        -- Sonuç :  20

--girilen Tarihin ay bilgisini verir.
SELECT MONTH('2009-07-20')                      -- Sonuç :  7

--Girilen Tarihin yıl bilgisini verir.
SELECT YEAR('2009-07-20')                       -- Sonuç :  2009

--Sistem Zamanını verir.
SELECT SYSDATETIME()       -- Sonuç :  2009-07-20 11:53:15.7138432

--Sistem Zamanını Greenwiche göre verir.
SELECT SYSUTCDATETIME()    -- Sonuç :  2009-07-20 08:53:25.9958432

-- DATEADD: Şuank, Tarihe 7 Gün ekleyelim.
-- Bunun için 1 hafta eklemek veya 7 gün eklemek yeterlidir.
SELECT DATEADD(DD, 7, GETDATE())
SELECT DATEADD(WW, 1, GETDATE())

-- Şuanki Tarihe göre Ayın hangi günündeyiz.
SELECT DAY(GETDATE())

-- Şuanki Ayın Ilk günü
SELECT DATEADD(DD,-(DAY(GETDATE())-1),CONVERT(VARCHAR,GETDATE(),112))

-- Şuanki Ayın son günü
SELECT DATEADD(DD,-(DAY(DATEADD(MM,1,GETDATE()))),DATEADD(MM,1, CONVERT(VARCHAR,GETDATE(),112)))

-- DATEDIFF: Ocak 1 2007 den bugune kadar kaç gün geçti
SELECT DATEDIFF(DD,'20070101',GETDATE())

-- DATENAME: Şuanki Ay
SELECT DATENAME(MM, GETDATE())

-- Hangi Aydayız.
SELECT MONTH(GETDATE())

-- Hangi Yıldayız
SELECT YEAR(CURRENT_TIMESTAMP)

ALINTI.

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: Tarih, Gün SQL
« Yanıtla #1 : 19.09.2012, 15:29 »
eline sağlık .

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Tarih, Gün SQL
« Yanıtla #2 : 19.09.2012, 15:41 »
SİZE hep imrenerek baktığımdan bana hep dert oldu kardeşim diayrbakırda yok ki böyle sql öğrenebileceğimiz bir yer gidelim sabahtandır muhammed mastar diye bir arkadaşın sql derleri videolarını izliyorum
kendi başıma öğrenerek yaptığım ilk sorgu

SELECT lg_008_clcard.CODE, lg_008_clcard.DEFINITION_, lg_008_clcard.CITY
FROM LKSDB.dbo.lg_008_clcard lg_008_clcard
WHERE (lg_008_clcard.ACTIVE=0) AND (lg_008_clcard.CODE Like 'a%')
ORDER BY lg_008_clcard.DEFINITION_

tek kayıt içindekileri bulmak filtrelemek kolay ancak iç içe kayıtların birleştirilmesi yani stckref=logicalref bağlantısı beni biraz manyak ediyor tabiri caizse bu konuyu nasıl öğrenebilirim
örneğin basit bir eldeki stokların durumunu öğrenmek istiyorum bağlantıları nasıl nerden yapacağım

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: Tarih, Gün SQL
« Yanıtla #3 : 19.09.2012, 16:11 »
Halis bunun icin Logo tablo yapısı,tablo alan isimleri ni yalayıp yutmak lazım ,yani bir muzisyen icin nota,makam,repertuvar gibi :)

Çevrimdışı ARSLAN_Aslan

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 3
  • yazilimyeri.com
Ynt: Tarih, Gün SQL
« Yanıtla #4 : 19.09.2012, 16:50 »
size bir yol, AnjLab SQLProfiler programı kur.
AnjLab SQLProfiler aç, trace kaydı başlat. Sonra Stok kartlarını aç.
Logo Arka planda nasıl kodlar dönderiyor görme şansın var.
tabii bu her koşulda olmaya bilir, kapalı sorgular ola bilir.

Bu kısımdan bişeyler öğrenmeye başla. http://anjlab.com/en/projects/opensource/sqlprofiler


Birol da aynen katılıyorum.

Çevrimdışı ARSLAN_Aslan

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 3
  • yazilimyeri.com
Tablo Adı Açıklama
« Yanıtla #5 : 19.09.2012, 16:58 »
Tablo adı Açıklama

DÖNEM TABLOLARI   
LG_XXX_XX_BNFICHE Banka fişleri
LG_XXX_XX_BNFLINE Banka hareketleri
LG_XXX_XX_BNTOTFIL Banka aylık toplamları
LG_XXX_XX_CLFICHE Cari hesap fişeri
LG_XXX_XX_CLFLINE Cari hesap hareketleri
LG_XXX_XX_CLRNUMS Cari hesap risk tabloları
LG_XXX_XX_CLTOTFIL Cari hesap aylık toplamları
LG_XXX_XX_CSCARD Çek/Senet kartları
LG_XXX_XX_CSHTOTS Kasa aylık toplamları
LG_XXX_XX_CSROLL Çek/Senet bordroları
LG_XXX_XX_CSTRANS Çek/Senet hareketleri
LG_XXX_XX_EMFICHE Muhasebe fişleri
LG_XXX_XX_EMFLINE Muhasebe hareketleri
LG_XXX_XX_EMUHTOT Muhasebe aylık toplamları
LG_XXX_XX_FOLDER Döküman katalog  bilgileri (watermark varsa)
LG_XXX_XX_INVOICE Faturalar
LG_XXX_XX_KSLINES Kasa işlemleri
LG_XXX_XX_ORFICHE Sipariş fişleri
LG_XXX_XX_ORFLINE Sipariş hareketleri
LG_XXX_XX_PAYTRANS Ödeme/Tahsilat hareketleri
LG_XXX_XX_PERDOC Döküman bilgileri (örnek malzeme resmi)
LG_XXX_XX_PRDCOST Maliyet dönem kapama kayıtları
LG_XXX_XX_PRODUCER Müstahsil faturası
LG_XXX_XX_SERILOTN Malzeme seri lot no. Bilgileri
LG_XXX_XX_SLQCASGN Kalite kontrol hareketleri
LG_XXX_XX_SLTRANS Seri/Lot hareketleri
LG_XXX_XX_SRVNUMS Aylık hizmet toplamları
LG_XXX_XX_SRVTOT Aylık hizmrt alış/satış toplamları
LG_XXX_XX_STFICHE Stok fişleri
LG_XXX_XX_STINVENS Malzeme alış/satış aylık toplamları
LG_XXX_XX_STINVTOT Günlük malzeme ambar toplamları
LG_XXX_XX_STLINE Malzeme hareketleri
LG_XXX_XX_TRANSAC Firma dönem bilgileri
LG_XXX_ACCCODES Entegrasyon bağlantı kodları

FİRMA TABLOLARI   
LG_XXX_ASCOND Alış/Satış koşulları
LG_XXX_BANKACC Banka hesapları
LG_XXX_BNCARD Bankalar
LG_XXX_BOMASTER Ürün reçeteleri
LG_XXX_BOMLINE Ürün reçete satırları
LG_XXX_BOMREVSN Ürün reçete revizyonları
LG_XXX_CHARASGN Malzeme özellik ataması
LG_XXX_CHARCODE Özellik kodları
LG_XXX_CHARVAL Özellik değerleri
LG_XXX_CLCARD Cari hesap kartları
LG_XXX_CLINTEL Cari hesap istihbarat bilgileri
LG_XXX_COPRDBOM Reçete-ek ürün ataması
LG_XXX_CRDACREF Kart-Muhasbe kodları
LG_XXX_DECARDS İndirim/Masraf kartları
LG_XXX_DISPLINE İş emirleri
LG_XXX_DISTLINE Dağıtım şablonu satırları
LG_XXX_DISTTEMP Dağıtım şablonları
LG_XXX_EMCENTER Masraf malzemeleri
LG_XXX_EMGRPASS Çalışan-Grup ataması
LG_XXX_EMPGROUP Çalışan grubu
LG_XXX_EMPLOYEE Çalışanlar
LG_XXX_EMUHACC Muhasebe hesapları
LG_XXX_ENGCLINE Mühendislik değişikliği işlemi
LG_XXX_FAREGIST Sabit kıymet kayıtları
LG_XXX_FAYEAR Sabit kıymet yıllık kaydı
LG_XXX_FIRMDOC Döküman katalog girişi(watermark)
LG_XXX_INVDEF Malzeme-Ambar bilgileri
LG_XXX_ITEMS Malzemeler
LG_XXX_ITEMSUBS Malzeme alternatifleri
LG_XXX_ITMBOMAS Malzeme-Ürecetesi ataması
LG_XXX_ITMCLSAS Malzeme-Malzeme sınıfı ataması
LG_XXX_ITMFACTP Malzeme-Fabrika bilgileri
LG_XXX_ITMUNITA Malzeme-Birim ataması
LG_XXX_ITMWSDEF Malzeme-İş ist. bilgileri
LG_XXX_ITMWSTOT Malzeme-İş ist. Toplamları (günlük)
LG_XXX_KSCARD Kasalar
LG_XXX_LABORREQ Çalışan ihtiyaçları
LG_XXX_LNGEXCSETS Bazı kayıtların diğer dillerdeki açıklamaları
LG_XXX_LNOPASGN Operasyon-Malzeme ilişkisi
LG_XXX_LOCATION Stok yerleri
LG_XXX_LOGREP LOG (izleme) kaydı
LG_XXX_OCCUPATN Kaynak kullanımları (üretim)
LG_XXX_OPATTASG Operasyon-Özellik ataması
LG_XXX_OPERTION Operasyonlar
LG_XXX_OPRTREQ Operasyon ihtiyacları
LG_XXX_PAYLINES Ödeme plan satırları
LG_XXX_PAYPLANS Ödeme planları
LG_XXX_PEGGING İşlem bağlantıları (üretim emri, sipariş)
LG_XXX_PRCARDS Promosyon kartları
LG_XXX_PRCLIST Alış/Satış fiyatları
LG_XXX_PRODORD Üretim emirleri
LG_XXX_PRVOPASG Öceki operasyon ilişkileri
LG_XXX_QASGN Kalite kontrol hareketi- Kalite kontrol ataması
LG_XXX_QCLVAL Kalite kontrol değerleri
LG_XXX_QCSET Kalite kontrol setleri
LG_XXX_QCSLINE Kalite kontrol satırları
LG_XXX_ROUTE Satış yönetim raporları
LG_XXX_ROUTETRS Satış rota satırları
LG_XXX_ROUTING Üretim rotaları
LG_XXX_RTNGLINE Üretim rota stırları
LG_XXX_SELCHVAL Malzeme-Özellik değerleri
LG_XXX_SLSCLREL Satış elemanı-Cari hesap ilişkisi
LG_XXX_SLSMAN Satış elemanları
LG_XXX_SPECODES Özel kodlar
LG_XXX_SRVCARD Hizmet kartları
LG_XXX_SRVUNITA Hizmet kaydı-Birim ataması
LG_XXX_STCOMPLN Karma koli satırları
LG_XXX_SUPPASGN Malzeme-Tedarikçi ataması
LG_XXX_TARGETS Satış elemanı hareketleri
LG_XXX_TOOLREQ Araç ihtiyacları
LG_XXX_TRGPAR Trigger parametreleri
LG_XXX_UNITSETC Birim setleri arası çevrim katsayıları
LG_XXX_UNITSETF Birim setleri
LG_XXX_UNITSETL Birimler
LG_XXX_WORKSTAT İş istasyonları
LG_XXX_WSATTASG İş ist.-Özellik ataması
LG_XXX_WSATTVAS İş ist.-Özellik değeri ataması
LG_XXX_WSCHCODE İş istasyonu özellikleri
LG_XXX_WSCHVAL İş istasyonu özellik değerleri
LG_XXX_WSGRPASS İş istasyonu-grup ataması
LG_XXX_WSGRPF İş istasyonu grupları

FİRMA BAĞIMSIZ TABLOLAR 
L_CAPIDEF Kuruluş bilgileri (ambar, işyer, fabrika vb.)
L_CDBTMP Form boyutları
L_CITY Şehirler
L_COUNTRY Ülkeler
L_DAILYEXCHANGES Günlük döviz kurları
L_GOUSERS Kullanıcılar
L_LDOCNUM Döküman numaralama şablonları
L_NET Network kontrolü (kimlerin hangi firma ve dönemle çalıştığı)
L_POSTCODE Posta kodları
L_RPFILTSXXX Kaydedilen rapor filtreleri
L_RPLAYS_XXX Kaydedilen rapor tasarımları
L_SHPAGENT Sevkiyat firmaları
L_SHPTYPES Sevkiyat türleri
L_TRADGRP Ticari işlem grupları

 
 




Çevrimdışı erhan2484

  • Logo Uzmanı
  • *****
  • Karma: 1
Ynt: Tarih, Gün SQL
« Yanıtla #6 : 19.09.2012, 17:00 »
çok yararlı bilgiler teşekkür ederim tam da bu bilgileri arıyordum.
(Halis Batmaz'ın tablo birleştirmeyle ilgili sorusu için belki yardımcı olur. ) sql sorgu yazarken tabloları birleştirmek için  design query in editör ü kullanıyorum.sorgu ekranında mause ile  sağ tıkladıktan sonra açılan ekrandan design query in editör ü seç ,tablolarını seç birleştirmeyi kendisi yapıyor.eğer cross join ile birleştirirse cross u silip inner join veya diğer joinler ile değiştirebiliyorsun.iyi çalışmalar.

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: Tarih, Gün SQL
« Yanıtla #7 : 19.09.2012, 17:27 »
Bir kere mantıgını anladınmı gerisin kolay .

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Tarih, Gün SQL
« Yanıtla #8 : 20.09.2012, 20:16 »
maruf abim sqlprofiller de server gerektiği gibi bişey duymuştum varmı öyle bişey yoksa ağ üzerinden birbirine bağlı sıradan bilgi. da oluyor mu

Çevrimdışı ByBirol®

  • Logo Sistem Administrator
  • Logo Uzmanı
  • *****
  • Karma: 18
  • admin@artibilisim.com Logo Çözüm Ortağı
Ynt: Tarih, Gün SQL
« Yanıtla #9 : 20.09.2012, 20:36 »
Ağ üzerindeki herhangi bir bilgisayardan Sql management tool kurarsan istedigin database baglanabilirsin .

Çevrimdışı ARSLAN_Aslan

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 3
  • yazilimyeri.com
Ynt: Tarih, Gün SQL
« Yanıtla #10 : 21.09.2012, 09:22 »
Sql profiller SQL aynı bilgisayarda olacak şartı yok.
sqlprofiller açılırken Server adı ve kullanıcı adı sorar, o şekilde bağlandığı SQL dinler.
Benim önerdiğim AnjLab SQLProfiler ise yine aynı mantık ile çalışır, Sql profiller olmayanlar için.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Tarih, Gün SQL
« Yanıtla #11 : 21.09.2012, 16:15 »
hiç destek almadan sadece azmy hocamın gönderdiği dosya ile ilk kapsamlı satış raporumu kendim oluşturdum yaptığımın aynısı bende var ancak ben stlıne dan gittim ama orda stfiche kullanılmış ama rakamlar aynı 2 rapor atacağım biri benim yaptığım diğeri bende olan

benim yaptığım ( kendime guru duyuyorum )
SELECT LG_008_CLCARD.CODE, LG_008_CLCARD.DEFINITION_, LG_008_CLCARD.CITY, lg_008_ITEMS.CODE, lg_008_ITEMS.NAME, lg_008_ITEMS.STGRPCODE, LG_008_05_STLINE.DATE_, LG_008_05_STLINE.MONTH_, LG_008_05_STLINE.AMOUNT, LG_008_05_STLINE.PRICE, LG_008_05_STLINE.VATMATRAH, LG_008_05_STFICHE.INVNO, LG_008_CLCARD.SPECODE
FROM LKSDB.dbo.LG_008_05_STFICHE LG_008_05_STFICHE, LKSDB.dbo.LG_008_05_STLINE LG_008_05_STLINE, LKSDB.dbo.LG_008_CLCARD LG_008_CLCARD, LKSDB.dbo.lg_008_ITEMS lg_008_ITEMS
WHERE LG_008_05_STLINE.STOCKREF = lg_008_ITEMS.LOGICALREF AND LG_008_05_STLINE.CLIENTREF = LG_008_CLCARD.LOGICALREF AND ((LG_008_05_STLINE.STFICHEREF=LG_008_05_STFICHE.LOGICALREF) AND (LG_008_05_STLINE.LINETYPE=0) AND (LG_008_05_STLINE.TRCODE=8))

birde bende olan

SELECT      dbo.LG_008_CLCARD.CODE ,              dbo.LG_008_CLCARD.DEFINITION_ ,  dbo.LG_008_CLCARD.CITY ,              dbo.LG_008_CLCARD.SPECODE ,                            dbo.LG_008_ITEMS.NAME ,                            dbo.LG_008_ITEMS.STGRPCODE ,              dbo.LG_008_05_STFICHE.INVNO ,              dbo.LG_008_05_STFICHE.DATE_ ,
dbo.LG_008_05_STLINE.MONTH_ ,
             dbo.LG_008_05_STFICHE.SOURCEINDEX ,              dbo.LG_008_05_STLINE.AMOUNT ,              dbo.LG_008_05_STLINE.PRICE ,              dbo.LG_008_05_STLINE.TOTAL ,              dbo.LG_008_05_STLINE.VATMATRAH ,              dbo.LG_SLSMAN.DEFINITION_ ,              dbo.LG_008_05_STFICHE.TRCODE   FROM              LG_008_05_STFICHE INNER JOIN              LG_008_05_STLINE ON LG_008_05_STLINE.STFICHEREF = LG_008_05_STFICHE.LOGICALREF INNER JOIN              LG_008_CLCARD ON LG_008_CLCARD.LOGICALREF=LG_008_05_STLINE.CLIENTREF INNER JOIN              LG_008_ITEMS ON LG_008_ITEMS.LOGICALREF=LG_008_05_STLINE.STOCKREF LEFT OUTER JOIN              LG_SLSMAN ON LG_SLSMAN.LOGICALREF=LG_008_05_STLINE.SALESMANREF  WHERE       dbo.LG_008_05_STLINE.LINETYPE=0 AND       LG_008_05_STFICHE.CANCELLED=0 AND       LG_008_05_STFICHE.TRCODE IN (8)     ORDER BY dbo.LG_008_05_STFICHE.INVNO

şimdi burda inner join neden kullanıldı kullanılmadan da yapılabiliyor amaç ne
« Son Düzenleme: 21.09.2012, 16:20 Gönderen: halisbatmaz »

Çevrimdışı erhan2484

  • Logo Uzmanı
  • *****
  • Karma: 1
Ynt: Tarih, Gün SQL
« Yanıtla #12 : 21.09.2012, 16:29 »
merhaba,bildiğim kadarıyla ;inner join 2 tablodaki null olmayan değerleri alıyor. iki tabloda left join kullanılırsa ilk tablodaki değerleri referans alarak sonuç getiriyor.right join ikinci tablodaki değerleri referans alarak sonuç getiriyor.join kullanmadan (=) kullanılırsa iki tabloda olan değerleri getiriyor null olanları almıyor.
« Son Düzenleme: 21.09.2012, 16:31 Gönderen: erhan2484 »

Çevrimdışı ARSLAN_Aslan

  • LOGO Bayi
  • Logo Uzmanı
  • *****
  • Karma: 3
  • yazilimyeri.com
Ynt: Tarih, Gün SQL
« Yanıtla #13 : 21.09.2012, 16:39 »
halisbatmaz sorgunu biraz daha sade hali;
From kımında örnek LG_008_ITEMS AS STK gibi AS sonra gelen kısa ad ile tablo ismini sorguda kullana bilirsin.

SELECT     CK.CODE, CK.DEFINITION_, CK.CITY, STK.CODE AS 'Stok Kod', STK.NAME,
                      STK.STGRPCODE, ST.DATE_, ST.MONTH_, ST.AMOUNT, ST.PRICE,
                      ST.VATMATRAH, SF.INVNO, CK.SPECODE
FROM         LG_008_ITEMS AS STK INNER JOIN
                      LG_008_05_STLINE AS ST ON STK.LOGICALREF = ST.STOCKREF INNER JOIN
                      LG_008_CLCARD AS CK ON ST.CLIENTREF = CK.LOGICALREF INNER JOIN
                      LG_008_05_STFICHE AS SF ON ST.STFICHEREF = SF.LOGICALREF
WHERE       (ST.LINETYPE = 0) AND (ST.TRCODE = 8 )

Join kullanım amaçları farklı ;
http://www.yazilimmutfagi.com/MakaleOku.aspx?MakaleKey=61f6992a-3b7d-43ec-92b0-bd5b3c240b9d makalede resimli güzel anlatılmış.

Çevrimdışı halisbatmaz

  • Logo Uzmanı
  • *****
  • Karma: -4
Ynt: Tarih, Gün SQL
« Yanıtla #14 : 21.09.2012, 16:55 »
LG_008_ITEMS.NAME  hocam bu zaten rapora alan adı olarak name geliyor ancak ben microsoft query kullandığım için alan adını değiştirebiliyorum as yazmadan da şimdi beğendiniz mi onu söyleyin :) becerdim mi ilk detaylı sorgum bu başlangıç için nasıl