Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Microsoft SQL Server / MSDE _ Dodawnie z tablicy wartości

Napisany przez: winiar789 7.09.2018, 08:07:33

Siemanko cześć - Dzień dobry smile.gif

Mam o to taki szybkie pytanko

Posiadam tablicę

  1.  
  2. [TwrKod] => 44444/BK/XS
  3. [Ilosc] => 1.0000
  4. [TwrKod] => 44444/BK/XS
  5. [Ilosc] => 3.0000
  6. [TwrKod] => 22222/CCC/XS
  7. [Ilosc] => 1.0000
  8. [TwrKod] =>111111/CCC/XS
  9. [Ilosc] => 3.0000
  10. [TwrKod] =>0000000/AA/XS
  11. [Ilosc] => 3.0000
  12. [TwrKod] =>0000000/AA/XS
  13. [Ilosc] => 3.0000
  14.  
  15.  



i finalnie potrzebuje to otrzymać :


  1.  
  2.  
  3. [TwrKod] => 44444/BK/XS
  4. [Ilosc] => 4.0000
  5. [TwrKod] => 22222/CCC/XS
  6. [Ilosc] => 1.0000
  7. [TwrKod] =>111111/CCC/XS
  8. [Ilosc] => 3.0000
  9. [TwrKod] =>0000000/AA/XS
  10. [Ilosc] => 6.0000
  11.  
  12.  
  13.  



Pozdro za odpowiedź i dobrego dnia exclamation.gif biggrin.gif

Napisany przez: nospor 7.09.2018, 09:11:40

Z racji ze niesamowicie zarabiscie opisales swoj problem oraz przedstawiles caly kontekst, otwieram moja szklana kule i:

- zakladam, ze to nie jest rzeczywista tablica bo nie ma zadnej racji bytu
- zakladam, ze pokazales kilka rekordow z bazy gdzie kazdy jest reprentowany przez tablice
- jesli powyzsze zalozenia sa dobre, to na etapie bazy robi sie takie sumowania.

Napisany przez: winiar789 7.09.2018, 09:17:03

Fakt mój opis może być słaby specool.gif

Więc daje obszerne dane biggrin.gif

  1.  
  2.  
  3. $rows2 = http://www.php.net/array();
  4. while($myRow2 = odbc_fetch_array($wynik2)){
  5.  
  6. $rows2[] = $myRow2;
  7.  
  8. }
  9.  
  10. http://www.php.net/echo "<pre>";
  11. http://www.php.net/print_r($rows2);
  12. http://www.php.net/echo "</pre>";
  13.  
  14. //WYNIK
  15.  
  16. http://www.php.net/array
  17. (
  18. [0] => http://www.php.net/array
  19. (
  20.  
  21. [TwrKod] => 44444/BK/XS
  22. [Ilosc] => 1.0000
  23. )
  24.  
  25. [1] => http://www.php.net/array
  26. (
  27. [TwrKod] => 44444/BK/XS
  28. [Ilosc] => 3.0000
  29. )
  30. [2] => http://www.php.net/array
  31. (
  32. [TwrKod] => 22222/CCC/XS
  33. [Ilosc] => 1.0000
  34. )
  35. [3] => http://www.php.net/array
  36. (
  37. [TwrKod] =>111111/CCC/XS
  38. [Ilosc] => 3.0000
  39. )
  40. )
  41.  
  42. //Potrzebuje
  43.  
  44. http://www.php.net/array
  45. (
  46. [TwrKod] => 44444/BK/XS
  47. [Ilosc] => 4.0000
  48. [TwrKod] => 22222/CCC/XS
  49. [Ilosc] => 1.0000
  50. [TwrKod] =>111111/CCC/XS
  51. [Ilosc] => 3.0000
  52.  
  53. )


TwrKod jeżeli jest taki sam w tablicy to sumuje ilość np mam 44444/BK/XS po 1 ilosci oraz 3 to wynikiem 44444/BK/XS ilosc 4

itd.

Napisany przez: nospor 7.09.2018, 09:20:29

Z racji, ze moja szklana kula byla sprawna, odpowiedz dostales juz w moim pierwszy poscie

Napisany przez: winiar789 7.09.2018, 09:22:22

heheheh smile.gif szklana kula sie nigdy nie myli ale ja potrzebuję przykładu na którym mogę bazować bo tak z opisu to nie wywnoskuje niczego

Napisany przez: nospor 7.09.2018, 09:23:49

jedna podstawowych funkcjonalnosc bazy/zapytan:
grupujesz po polu i robisz SUM

Z racji ze nie raczyles napisac jaka to baza wiec konkretnego przykladu ci nie dam

Napisany przez: winiar789 7.09.2018, 09:48:02

Ooosz Ty smile.gif nie poddaje się - baza MSSQL połączenie przez OBDC

zayptanie i tak już jest łączone więc myślałem że w PHP połącze sobie to na luzie.

  1. $query2 = "SELECT * FROM TraNag T FULL OUTER JOIN TraElem P ON T.TrN_TrNID = P.TrE_TrNId WHERE T.TrN_NumerString='3333333333' AND T.TrN_DataDok >= '".$myDate."' AND T.TrN_DataDok <= '".$dzisiaj."' AND T.TrN_Bufor='1'";
  2.  
  3.  

Napisany przez: nospor 7.09.2018, 09:50:30

To ze uzywasz JOINow naprade nie przeszkadza by uzyc jeszcze GROUP BY i SUM - po to bazy danych maja te skladnie by moc latwo i szybko operowac na bazie a nie potem jeszcze w php obrabiac tak proste wyniki

Cytat
połączenie przez OBDC
No to akurat widzialem w kodzie tongue.gif

Napisany przez: winiar789 7.09.2018, 10:15:34

biggrin.gif ale uparcie nie chcesz podać mi przykładu zapytania wink.gif

Napisany przez: nospor 7.09.2018, 10:19:34

A ty uparcie nie chcesz zajrzec do manuala mimo ze podalem ci juz wszystko co masz znalezc smile.gif

ps: mssql wybrales sam z wlasnej woli w naplywie szalenstwa czy zmuszony do tego zostales w szkole/uczelni/pracy ?

Napisany przez: winiar789 7.09.2018, 10:51:24

Zmuszony w pracy - dane z jednego systemu trzeba wrzucać do drugiego a najlepiej to jakby wszystko już było obrobione idealnie pod klienta który sobie to życzy smile.gif


No i mam problem

Zapytanie

  1.  
  2. $query2 = "SELECT SUM(p.TrE_Ilosc) FROM TraNag t FULL OUTER JOIN TraElem p ON t.TrN_TrNID = p.TrE_TrNId WHERE t.TrN_NumerString='3333333333' AND t.TrN_DataDok >= '".$myDate."' AND t.TrN_DataDok <= '".$dzisiaj."' AND t.TrN_Bufor='1' GROUP BY p.TrE_TwrKod";
  3.  
  4.  


i teraz tak jak dodaje sobie SELECT p.TrE_TwrKod SUM(p.TrE_Ilosc) FROM
to mam błąd

a potrzbuje indeksy jak i ilości - jak dodaje SELECT * SUM(p.TrE_Ilosc) FROM
też nie chce zadziałać sad.gif

Napisany przez: nospor 7.09.2018, 11:07:18

oj, nadwyrezasz dzisiaj moja szklana kule... Magiczny proszek kosztuje niemalo...

A blad ktory dostajesz brzmi... ?

Napisany przez: winiar789 7.09.2018, 11:11:33

Na magiczny proszek zapraszam biggrin.gif biggrin.gif

SELECT p.TrE_TwrKod SUM(p.TrE_Ilosc) FROM

Incorrect syntax near 'p'., SQL state 37000 in SQLExecDirect

SELECT * SUM(p.TrE_Ilosc) FROM

Incorrect syntax near 'SUM'., SQL state 37000

Różnych opcji próbowałem

Napisany przez: nospor 7.09.2018, 11:27:17

SELECT p.TrE_TwrKod, SUM(p.TrE_Ilosc) FROM

Cytat
Na magiczny proszek zapraszam
Czyzby dzwoneczek byl twoim dystrybutorem? wink.gif

Napisany przez: winiar789 7.09.2018, 11:29:55

hehehehe dzwoneczek biggrin.gif ! działa

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)