Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wyszukiwanie w liście tabel
di@blo
post 10.12.2014, 18:30:02
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Witam

Mam tabelę główną:

| ID | Miesiac | NazwaTabeli |

W tej tabeli mam wpisy tworzonych co miesiąc tabel oraz tabele z raportami miesięcznymi

| ID | D1 | D2 | D3 |

Chcę przeszukać wszystkie tabele (zawarte w tabeli głównej, w kolumnie NazwaTabeli) i zwrócić wszystkie dane. Próbowałem tak:

  1. "Select * From (Select NazwaTabeli From TabelaGlowna) T"


ale zwraca mi dane z kolumny NazwaTabeli z tabeli głownej.

W jaki sposób można zrealizować takie zapytanie? Byłbym wdzięczny za wszelkie wskazówki.
Go to the top of the page
+Quote Post
mmmmmmm
post 10.12.2014, 23:04:41
Post #2





Grupa: Zarejestrowani
Postów: 1 409
Pomógł: 307
Dołączył: 18.04.2012

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


Prepared Statements
A moim skromnym zdaniem masz zdecydowanie złą strukturę danych
Go to the top of the page
+Quote Post
di@blo
post 11.12.2014, 22:40:27
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 9.03.2005

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


Dzięki za pomoc, ale próbuje próbuje i coś mi nie idzie.
Rozumiem, że powinienem zrobić zapytanie do głównej tabeli a później podstawić wyniki pod drugie zapytanie. Na razie stworzyłem coś takiego.

  1. SqlConn.Open()
  2.  
  3. Dim bCmd AS SqlCommand = New SqlCommand("", SqlConn)
  4. bCmd.CommandText = "Select TName From GodzHala1"
  5.  
  6. Dim R AS SqlDataReader = bCmd.ExecuteReader
  7. Dim tab = New List(Of String)
  8.  
  9. While R.READ()
  10. tab.ADD(R("TName").ToString)
  11. End While
  12. R.Close()
  13.  
  14. Dim command AS SqlCommand = New SqlCommand("", SqlConn)
  15. command.CommandText = "Select * From @tab"
  16.  
  17. command.Parameters.AddWithValue("@tab", String.JOIN("|", tab))
  18.  
  19. Dim rowsAffected AS Integer = command.ExecuteNonQuery()
  20. MsgBox("Rows: {0}", rowsAffected)
  21.  
  22. SqlConn.Close()


Jakieś jeszcze wskazówki?


Co do struktury danych to wygląda to tak:
- mam tabele ze zleceniami (docelowo kilka tysięcy), w których mam listę zleceń wraz z dodatkowymi danymi,
- nad każdym zleceniem może pracować kilka działów firmy,
- każdy dział musi zliczań dzienny nakład pracy na każde zlecenie,
- muszę znać miesięczną oraz sumaryczną liczbę godzin na każde zlecenie,

Na razie wymyśliłem dwa sposoby:
1) tabele główne dla każdego działu z listami tabel, które zawierające raporty miesięczne, każda tabela z raportami ma kolumny z dniami miesiąca, a rekordami byłyby zlecenia,
2) tabele dla każdego zlecenia, gdzie kolumnami byłyby nazwy działów, a rekordy to nazwy dni,

Drugie rozwiązanie jest prostsze, ale pierwsze łatwiej prezentuje miesięczny raport godzin z poszczególnych dni dla każdego zlecenia.
Chyba, że jest jeszcze jakieś inne dobre rozwiązanie, które mi nie przyszło do głowy.

Ten post edytował di@blo 11.12.2014, 22:51:10
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.05.2019 - 07:59