![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z przygotowaniem raportu/formularza zbiorczego. Strukura bazy: ID | DATA | RODZAJ | NR | KWOTA Co chce osiągnąć? Raport sumujący poszczególne rodzaje, + szczegóły dla wybranych dla konkretnej daty Czyli: 1. Rodzaj 1 SUMA: suma dla rodzaj 1 2. Rodzaj 2 NR1 KWOTA 1 NR2 KWOTA 2 SUMA: suma dla rodzaj 2 itd... Jak to najlepiej rozwiązać? Przy okazji jak przekazać zmienną z formularza do kwerendy? Będę wdzięczny za pomoc, nakierowanie, linki do dobrych tutoriali Pozdrawiam -------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witaj,
masz tabelę i chcesz na jej podstawie dowiedzieć się: a) ile jest rekordów, które mają wpisany rodzaj 1, 2 itd i jednocześnie na jaką kwotę opiewają te wszystkie rekordy gdzie wskazany jest określony rodzaj. Dobrze zrozumiałam? Jeżeli tak, najprościej jest zrobić kwerendę która będzie grupowała wg rodzajów, liczyła ID i sumowała kwoty. SELECT Tabela1.RODZAJ, Count(Tabela1.ID) AS PoliczOfID, Sum(Tabela1.KWOTA) AS SumaOfKWOTA FROM Tabela1 GROUP BY Tabela1.RODZAJ; ![]() SELECT Tabela1.DATA, Tabela1.RODZAJ, Tabela1.NR, Tabela1.KWOTA FROM Tabela1 WHERE (((Tabela1.DATA) Between [podaj datę od w formacie RRRR-MM-DD] And [podaj datę do w formacie RRRR-MM-DD])); Czy taki zapis w SQL wyjaśnia ci jak to zrobić? Pytasz też jak przekazać zmienną z formularza do kwerendy. Nie wiem jak i podejrzewam, że się nie da. Formularz to tylko nakładka, która ułatwia wprowadzanie danych lub ich przeglądanie. Może napisz czego konkretnie potrzebujesz. Pozdrawiam |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hej
Dzięki za odp. Niezbyt dobrze opisałem problem, prawdopodobnie z powodu, że zbyt długo się z tym męczyłem. Wynikiem działania miało być generowanie raportów dziennych. Moim problemem było chyba to, że chciałem zawrzeć jak najwięcej w jak najmniejszej liczbie zapytań/kwerend. Udało mi się utworzyć raport z podraportami, tyle, że każdy podraport oparty na kwerendzie, a nie tak jak planowałem na powiązaniu z głównym raportem. Do każdej listy szczegółów musiałem stworzyć mini-podraport oparty na kwerendzie. Sumy ogólne wyciągam jednym zapytaniem:
Przy okazji znalazłem jak pobrać wartość z pola formularza do kwerendy:) Ale Twoje jest lepsze, po małym dostosowaniu:
Jeszcze tylko nie rozumiem filozofii tworzenia wielokrotnych joinów. Jest jakoś inaczej, ale może dzisiaj mi się uda ![]() Ten post edytował vokiel 18.06.2009, 07:39:18 -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 1 Dołączył: 5.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Cóż, ja bym nie zastosowała takiego rozwiązania ponieważ jest ono "sztywne". Wszystkie bazy, które robię wymagają nieustannych modyfikacji. Pojawiają się jakieś nowe wytyczne, nowe potrzeby i muszę wprowadzać dodatkowe funkcjonalności. Zawsze więc staram się szukać czegoś dynamicznego, co będzie działało również wtedy gdy użytkownik wprowadzi RODZAJ625 chociaż niby miało być tylko 12. Listy też tworzę dynamiczne w oparciu o kwerendy z możliwością uzupełniania nawet wtedy gdy teoretycznie takich uzupełnień nie powinno być. W połowie przypadków jednak są. Jednak twoje realia pracy z bazą mogą być zupełnie inne.
Jeśli zaś chodzi o JOIN nie miałam potrzeby korzystania. To jest operator, który łączy dane z różnych tabel pod warunkiem, ze kolumny mają takie same parametry. I tylko tyle wiem. Czasem używam UNION aby pozbierać rozpierzchnięte w kilku exl rekordy do jednej bazy access. Takie porządki ![]() Pozdrawiam i powodzenia |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.05.2025 - 10:58 |