Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak wyrzucic dane z 7 tabel
mika1
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 15.05.2007

Ostrzeżenie: (0%)
-----


Witajcie,

mam baze o strukturze:
  1. CREATE TABLE `umowy` (
  2. `NrUmowy` varchar(10) NOT NULL,
  3. `OpisUmowy` varchar(255) NOT NULL,
  4. `Grupa` varchar(255) NOT NULL,
  5. `Typ` varchar(255) NOT NULL,
  6. `Dzial` varchar(255) NOT NULL,
  7. `Jednostka` varchar(255) DEFAULT NULL,
  8. `Nazwisko` varchar(100) NOT NULL,
  9. `Imie` varchar(50) NOT NULL,
  10. `Poczatek` varchar(12) NOT NULL,
  11. `Koniec` varchar(12) NOT NULL,
  12. `BiezacyRok` varchar(5) NOT NULL,
  13. PRIMARY KEY (`NrUmowy`));
  14.  
  15.  
  16. CREATE TABLE `zlecenie` (
  17. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  18. `NrUmowy` varchar(10) NOT NULL,
  19. `Rok` varchar(5) NOT NULL,
  20. `Wykonawca` varchar(255) NOT NULL,
  21. `DataFaktury` varchar(12) NOT NULL,
  22. `NrFaktury` varchar(20) NOT NULL,
  23. `Kwota` double NOT NULL,
  24. PRIMARY KEY (`Lp`));
  25.  
  26. CREATE TABLE `dzielo` (
  27. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  28. `NrUmowy` varchar(10) NOT NULL,
  29. `Rok` varchar(5) NOT NULL,
  30. `Nazwisko` varchar(100) NOT NULL,
  31. `Imie` varchar(50) NOT NULL,
  32. `Kwota` double NOT NULL,
  33. PRIMARY KEY (`Lp`));
  34.  
  35. CREATE TABLE `materialy` (
  36. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  37. `NrUmowy` varchar(10) NOT NULL,
  38. `Rok` varchar(5) NOT NULL,
  39. `Wykonawca` varchar(255) NOT NULL,
  40. `DataFaktury` varchar(12) NOT NULL,
  41. `NrFaktury` varchar(20) NOT NULL,
  42. `Kwota` double NOT NULL,
  43. PRIMARY KEY (`Lp`));
  44.  
  45. CREATE TABLE `ogolne` (
  46. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  47. `NrUmowy` varchar(10) NOT NULL,
  48. `Rok` varchar(5) NOT NULL,
  49. `Data` varchar(12) NOT NULL,
  50. `Kwota` double NOT NULL,
  51. PRIMARY KEY (`Lp`));
  52.  
  53. CREATE TABLE `prow` (
  54. `NrUmowy` varchar(10) NOT NULL,
  55. `Rok` varchar(6) NOT NULL,
  56. `Lacznie` double NOT NULL,
  57. `wyplaty` double NOT NULL,
  58. `zlecenie` double NOT NULL,
  59. `Materialy` double NOT NULL,
  60. `Uslugi` double NOT NULL,
  61. `dzielo` double NOT NULL,
  62. `koszty` double NOT NULL,
  63. `Ogolne` double NOT NULL, `VAT` double NOT NULL
  64. );
  65.  
  66. CREATE TABLE `blokady` (
  67. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  68. `NrUmowy` varchar(10) NOT NULL,
  69. `Rok` varchar(5) NOT NULL,
  70. `Data` varchar(12) NOT NULL,
  71. `Kwota` double NOT NULL,
  72. `Cel` varchar(100) NOT NULL,
  73. PRIMARY KEY (`Lp`));
  74.  
  75. CREATE TABLE `uslugi` (
  76. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  77. `NrUmowy` varchar(10) NOT NULL,
  78. `Rok` varchar(5) NOT NULL,
  79. `Wykonawca` varchar(255) NOT NULL,
  80. `DataFaktury` varchar(12) NOT NULL,
  81. `NrFaktury` varchar(20) NOT NULL,
  82. `Kwota` double NOT NULL,
  83. PRIMARY KEY (`Lp`));
  84.  
  85. CREATE TABLE `wyplaty` (
  86. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  87. `NrUmowy` varchar(10) NOT NULL,
  88. `Rok` varchar(5) NOT NULL,
  89. `Miesiac` varchar(15) NOT NULL,
  90. `Kwota` double NOT NULL,
  91. PRIMARY KEY (`Lp`));
  92.  
  93. CREATE TABLE `koszty` (
  94. `Lp` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT,
  95. `NrUmowy` varchar(10) NOT NULL,
  96. `Rok` varchar(5) NOT NULL,
  97. `Nazwisko` varchar(100) NOT NULL,
  98. `Imie` varchar(50) NOT NULL,
  99. `Kwota` double NOT NULL,
  100. PRIMARY KEY (`Lp`));
  101.  
  102. CREATE TABLE `grupy_umow` (
  103. `NazwaGrupy` varchar(255) NOT NULL,
  104. PRIMARY KEY (`NazwaGrupy`));
  105.  
  106.  
  107. CREATE TABLE `jednostki` (
  108. `NazwaJednostki` varchar(255) NOT NULL,
  109. `NazwaDzialu` varchar(255) NOT NULL,
  110. PRIMARY KEY (`NazwaJednostki`));
  111.  
  112.  
  113. CREATE TABLE `typy_umow` (
  114. `NazwaTypu` varchar(255) NOT NULL,
  115. `NazwaGrupy` varchar(255) NOT NULL,
  116. PRIMARY KEY (`NazwaTypu`));
  117.  
  118.  
  119. CREATE TABLE `Dzialy` (
  120. `NazwaDzialu` varchar(255) NOT NULL,
  121. PRIMARY KEY (`NazwaDzialu`));


i potrzebuje wydobyc dane z 7 tabel. Robie to tak:
  1. SELECT a.NrUmowy, a.Grupa, a.Dzial, a.Nazwisko, b.sum(Kwota), b.Rok, c.sum(Kwota), c.Rok, d.sum(Kwota), d.Rok, e.sum(Kwota), e.Rok, f.sum(Kwota), f.Rok, g.sum(Kwota), g.Rok, m.sum(Kwota), m.Rok
  2. FROM umowy a
  3. LEFT JOIN zlecenie b ON b.NrUmowy = a.NrUmowy
  4. LEFT JOIN dzielo c ON c.NrUmowy = a.NrUmowy
  5. LEFT JOIN materialy d ON d.NrUmowy = a.NrUmowy
  6. LEFT JOIN uslugi e ON e.NrUmowy = a.NrUmowy
  7. LEFT JOIN wyplaty f ON f.NrUmowy = a.NrUmowy
  8. LEFT JOIN koszty g ON g.NrUmowy = a.NrUmowy
  9. LEFT JOIN ogolne m ON m.NrUmowy = a.NrUmowy
  10. GROUP BY b.NrUmowy, b.Rok, c.NrUmowy, c.Rok, d.NrUmowy, d.Rok, e.NrUmowy, e.Rok, f.NrUmowy, f.Rok, g.NrUmowy, g.Rok, m.NrUmowy, m.Rok


Chciałabym dodać jeszcze 2 tabele. Ale na chwilę obecną wydajnościowo działa to tak że po 4 godzinach brak efektu. Co mogę zrobić żeby uzyskać na początek te dane?

Dzięki
B
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:06