Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Vađenje podataka iz 6 tablica (Knjiga prometa)

[es] :: .NET :: Vađenje podataka iz 6 tablica (Knjiga prometa)

[ Pregleda: 3967 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Vađenje podataka iz 6 tablica (Knjiga prometa)17.01.2011. u 18:52 - pre 160 meseci
Pozdrav svima!
Može li mi netko pomoći kako da spojim 8 mysql tablica i napravim knjigu prometa?
Knjiga prometa bi trebala izgledati ovako u 4 stupca.

Redni broj --|--Datum--|------Naziv------|--Zaduženje--|--Razduženje--
-----------------------------------------------------------------------
1.----------|1.1.2011--|Interna primka 1--|1645,00------|--------------
2.----------|1.1.2011--|Interna Primka 2--|1139,00------|--------------
3.----------|1.1.2011--|Primka 1--------- |790,00-------|--------------
4.----------|1.1.2011--|Povratnica 1-----|(-350,00)-----|--------------
5.----------|1.1.2011--|Utrošak----------|--------------|3500,00------
-----------------------------------------------------------------------
6.----------|1.1.2011--|Interna primka 3--|1525,00------|--------------
7.----------|1.1.2011--|Interna Primka 4--|1639,00------|--------------
8.----------|1.1.2011--|Primka 2--------- |290,00-------|--------------
9.----------|1.1.2011--|Povratnica 2-----|(-640,00)-----|--------------
10.---------|1.1.2011--|Utrošak----------|--------------|2845,00------
itd..

e to bi trebalo izgledat tako poredano po datumima za jedan mjesec
1. Interna primka mi ima 2 tablice
-- primka(id,redni_broj,datum,Interna_primka(ako je 1 onda je interna primka ako je 0 onda je primka))
-- primka_art(id,primka_id,cijena,sifra_artikla,kolicina) i ukupan iznos(razduženje) radim ovako sum(cijena*kolicina) ON primka_id=id

primka se spremaju u istu tablicu i razdvajam ih po interna_primka=0

2. povratnica isto 2 tablice
-- otpis(id,redni_broj,datum)
-- otpis_art(id,otpis_id,cijena,sifra_artikla,kolicina) i ukupan iznos(Povratnice) radim ovako sum(cijena*kolicina) ON otpis_id=id

2 i zadnje 2 tablice je utrošak tj promet dana ima 2 tablice
-- racun(id,redni_broj,datum,...)
-- racun_art(id,racun_id, cijena,sifra_artikla,kolicina) i ukupan iznos(Utrošak ili promet daba) radim ovako sum(cijena*kolicina) ON racun_id=id
tu još ima i pdv i neka druga polja za rabat itd al to nije sada bitno

kako da s SQL komandom spojim tih 6 tablica da dobijem šta mi treba :D jel bi mi neko mogao pomoći?
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)18.01.2011. u 13:27 - pre 160 meseci
Pa ides UNION-om.

recimo:

SELECT primka.datum, primka.interna_primka, case when sum(kolicina * cijena) > 0 then sum(kolicina * cijena) else 0 end AS zaduzenje, case when sum(kolicina * cijena) < 0 then sum(kolicina * cijena) else 0 end AS razduzenje from primka = primka_art ON primka_id = id

UNION

SELECT otpis.datum, otpis.interna_primka, case when sum(kolicina * cijena) > 0 then sum(kolicina * cijena) else 0 end AS zaduzenje, case when sum(kolicina * cijena) < 0 then sum(kolicina * cijena) else 0 end AS razduzenje from otpis = otpis_art ON otpis_id = id

UNION

SELECT racun.datum, racun_art.interna_primka, case when sum(kolicina * cijena) > 0 then sum(kolicina * cijena) else 0 end AS zaduzenje, case when sum(kolicina * cijena) < 0 then sum(kolicina * cijena) else 0 end AS razduzenje from racun = racun_art ON racun_id = id


Pa prilagodi kako ti odgovara.

Pozdrav
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)18.01.2011. u 13:48 - pre 160 meseci
hvala puno na odgovoru, razmišljao sam čak da napravim tablicu knjiga i stavi 4 stupca u nju, naziv, datum, zaduženje, razduženje, i svaki put kad se napravi primka, otpis robe, ili zaključak dana da spremi u knjigu samo iznos i datum i naziv mislim da bi bilo lakše za izvest i da neopterečujem bazu podataka.
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)19.01.2011. u 06:49 - pre 160 meseci
Bolje nemoj,

to su ti sve proracunati podaci, kada ti zatrebaju bazi je to cas posla da odradi, u drugoj slucaju moras da brines jesu li ti podaci u toj novoj tabeli refreshovani, svaka izmjena na bilo kom od ona tri dokumenta zahtijeva izmjenu i u toj tabeli. Napravices sebi vise posla, a opet ti se moze potkrast neka greska
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)22.01.2011. u 08:47 - pre 160 meseci
pozz pokušao sam kako si mi ti rekao al mi neće radit.. jel bi mi mogao pomoći stim kodom nikad nisam radio tako komplicirani kod

Code:
   SQL = "SELECT primka.datum, primka.broj, case when sum(primke_art.kolicina * primke_art.cijena) > 0 then sum(primke_art.kolicina * primke_art.cijena) else 0 end AS zaduzenje," & _
        " case when sum(primke_art.kolicina * primke_art.cijena) < 0 then sum(primke_art.kolicina * primke_art.cijena) else 0 end AS razduzenje from primka JOIN primke_art ON primke_art.primka_id = primka.id" & _
        " UNION()" & _
        " SELECT povrat.datum, povrat.broj, case when sum(povrat_art.kolicina * povrat_art.cijena) > 0 then sum(povrat_art.kolicina * povrat_art.cijena) else 0 end AS zaduzenje," & _
        " case when sum(povrat_art.kolicina * povrat_art.cijena) < 0 then sum(povrat_art.kolicina * povrat_art.cijena) else 0 end AS razduzenje from povrat JOIN povrat_art. ON povrat_art.povrat_id = povrat.id" & _
        " UNION()" & _
        " SELECT racuni.datum, case when sum(racun_art.kolicina * racun_art.cijena) > 0 then sum(racun_art.kolicina * racun_art.cijena) else 0 end AS zaduzenje," & _
        " case when sum(racun_art.kolicina * racun_art.cijena) < 0 then sum(racun_art.kolicina * racun_art.cijena) else 0 end AS razduzenje from racuni JOIN racun_art ON racun_art.racun_id = racuni.id"


www.wirelesscepin.com/baza.rar
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)24.01.2011. u 11:38 - pre 160 meseci
Pa, prije svega, UNION ti nema zagrade.

mada sad kad pogledam malo bolje, case-ovi ti uopste ne trebaju:

SELECT primka.datum, sum(kolicina * cijena) AS zaduzenje, 0 AS razduzenje from primka = primka_art ON primka_id = id

UNION

SELECT otpis.datum, 0 AS Zaduzenje, sum(kolicina * cijena) AS razduzenje from otpis = otpis_art ON otpis_id = id

UNION

SELECT racun.datum, 0 AS Zaduzenje, sum(kolicina * cijena) AS razaduzenje from racun = racun_art ON racun_id = id

 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)26.01.2011. u 09:47 - pre 160 meseci
Hvala na pomoći ;) napisao sam sada kraću verziju koda ali imam problem neizbacuje mi ništa u datagridview pogle sliku dole hehe. kontam si da ću sada privremeno napravit onako još jednu tablicu pa da se tamo sprema sve jer program već radi u jednoj pekari i hitno im treba ta knjiga prometa.
Slika

evo i koda:
Code:

 Dim conn As New MySqlConnection
        Dim myCommand As New MySqlCommand
        Dim myAdapter As New MySqlDataAdapter
        Dim myData As New DataTable
        Dim SQL As String


        SQL = "SELECT primke.datum AS datum, primke.broj AS broj, SUM(primke_art.kolicina * primke_art.cijena) AS zaduzenje, 0 as razduzenje" & _
        " FROM primke JOIN primke_art ON primke_art.primke_id = primke.id" & _
        " GROUP BY primke.datum" & _
        " UNION" & _
        " SELECT povrat.datum AS datum, povrat.broj AS broj, 0 AS zaduzenje, SUM(povrat_art.kolicina * povrat_art.cijena) AS razduzenje" & _
        " FROM povrat JOIN povrat_art ON povrat_art.povrat_id = povrat.id" & _
        " GROUP BY povrat.datum" & _
        " UNION" & _
        " SELECT racuni.datum AS datum, racuni.id AS broj, 0  AS zaduzenje, SUM(racun_artikli.kolicina * racun_artikli.cijena) AS razduzenje" & _
        " FROM racuni JOIN racun_artikli ON racun_artikli.racun_broj = racuni.id" & _
        " GROUP BY racuni.datum"

        conn.ConnectionString = myConnString1 & ";Allow Zero Datetime=true"

        Try
            conn.Open()
            Try
                myCommand.Connection = conn
                myCommand.CommandText = SQL

                myAdapter.SelectCommand = myCommand
                myAdapter.Fill(myData)


                dgvKorisnici.DataSource = myData
                dgvKorisnici.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

                Call DataGridViewFormat(dgvKorisnici)

            Catch myerror As MySqlException
                MsgBox("There was an error reading from the database: " & myerror.Message)
                    End Try


        Catch myerror As MySqlException
            MessageBox.Show("Error connecting to the database: " & myerror.Message)
        Finally
            If conn.State <> ConnectionState.Closed Then conn.Close()
                End Try
    End Sub
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.49.crnagora.net.



Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)26.01.2011. u 19:41 - pre 160 meseci
Pa, pretpostavljajuci da ti je query ispravan, najvjerovatnije je da ti nijesu kolone datagridview-a dobro mapirane na kolone koje ti vraca query.

Sa slike vidim da imas tri kolone, datum, ulaz i izlaz, a query ti vraca cetiri kolone. Plus, ne znam sta ti ono DataGridViewFormat() radi.

Kroz kod to mozes da podesis ovako:

Code:

dataGridViewTextBoxColumn1.DataPropertyName = "datum";
dataGridViewTextBoxColumn2.DataPropertyName = "broj";
dataGridViewTextBoxColumn3.DataPropertyName = "zaduzenje";
dataGridViewTextBoxColumn4.DataPropertyName = "razduzenje";


Naravno, moras da vodis racuna imenima kolona datagridview-a. Mada, sve ovo mozes i kroz designer.
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)27.01.2011. u 18:26 - pre 160 meseci
sara radi super bila mi je greška na dgv imao sam 1 stupac previše.... thx. sad mi super ispisuje sve,
možeš li mi reči mogu li ubacit sql komandu di mi je npr primka.broj AS broj tekst(Primka) tako da mi u dgv neprikazuje samo broj nego i tekst npr primka broj: 1, il u otpisu otipis broj: 1 tako da znam o ćemu je riječ.
i kako da još grupiram razduženje jer sad mi prikazuje iznos svakog računa... a ja bi htjeo da mi prikaže za cijeli dan i koji je najbolji način da isprintam to?
ovako sada izgleda

slika


a ovako bi to trebalo izgledati tu sliku sam našao na netu

slika 2
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)27.01.2011. u 18:35 - pre 160 meseci
za razduženju sam sada stavio novi kod jer sam napravio da mi u tablici racuni spremi ukupan iznos računa kada ga zaključi tako da ga se nemora ponovo računati kod izgleda ovako:
ali mi još uvijek stavlja ispis svih računa.. a ne po danu.
Code:
 " SELECT racuni.datum AS datum, racuni.id AS broj, 0  AS zaduzenje, SUM(racuni.cijena_ukupna) AS razduzenje" & _
        " FROM racuni" & _
        " GROUP BY racuni.datum"
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)27.01.2011. u 18:59 - pre 160 meseci
skonto sam zašto mi neće grupirati po datumu.... jer se nalazi u ovom formatu 2011-01-01 08:49:56 i sad sam samo dodao GROUP BY DATE(racuni.datum)
i sada radi =) jedino sad još da uspijem dodat ispred broja šta je zaduženje, primka il interna primka...
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)28.01.2011. u 17:45 - pre 160 meseci
Pokušao sam spojit string s CONCAT funkcijom CONCAT('Primka broj: ', primke.broj) AS broj, ali neradi javlja mi greške datagridview nekontam zašto i kad sve greške prođu u toj koloni mi onda ostavi byte()array tak nešto :S
sad ću pokušat sredit da mi vadi podatke za određen mjesec i godinu

evo slika kako izgleda error kada pokušam concat

slika

postoji li možda neki drugačiji način da to sredim?
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)28.01.2011. u 21:07 - pre 160 meseci
Sad pisem napamet:

Probaj:
Code:

CONCAT('Primka broj: ', CAST(primke.broj AS char)) AS Broj


Ili:
Code:

SELECT 'Primka broj: ' + CAST(primke.broj AS char)
 
Odgovor na temu

Black One
Čepin

Član broj: 46302
Poruke: 102
*.adsl.net.t-com.hr.

Sajt: www.medija.org


+1 Profil

icon Re: Vađenje podataka iz 6 tablica (Knjiga prometa)29.01.2011. u 09:57 - pre 160 meseci
Hvala ti puno na pomoći radi mi sada sve ;))))

ovaj kod sam koristio
Code:
CAST(CONCAT('Primka broj:', primke.broj) AS CHAR) AS broj


moram sredit još sitnice neke oko datuma. pa pošaljem sliku da vidiš kako izgleda ;)
 
Odgovor na temu

[es] :: .NET :: Vađenje podataka iz 6 tablica (Knjiga prometa)

[ Pregleda: 3967 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.