Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawnie z tablicy wartości
Forum PHP.pl > Forum > Bazy danych > Microsoft SQL Server / MSDE
winiar789
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
nospor
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.
winiar789
Fakt mój opis może być słaby specool.gif

Więc daje obszerne dane biggrin.gif

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


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.
nospor
Z racji, ze moja szklana kula byla sprawna, odpowiedz dostales juz w moim pierwszy poscie
winiar789
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
nospor
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
winiar789
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.  
nospor
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
winiar789
biggrin.gif ale uparcie nie chcesz podać mi przykładu zapytania wink.gif
nospor
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 ?
winiar789
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
nospor
oj, nadwyrezasz dzisiaj moja szklana kule... Magiczny proszek kosztuje niemalo...

A blad ktory dostajesz brzmi... ?
winiar789
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
nospor
SELECT p.TrE_TwrKod, SUM(p.TrE_Ilosc) FROM

Cytat
Na magiczny proszek zapraszam
Czyzby dzwoneczek byl twoim dystrybutorem? wink.gif
winiar789
hehehehe dzwoneczek biggrin.gif ! działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.